[PATCH] D105629: [TSan] Add SystemZ support

Dmitry Vyukov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 8 23:11:48 PDT 2021


dvyukov added a comment.

Some solid work here.

I only have a question re mmap handling.



================
Comment at: compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:781
+      // TSAN. Act as if we ran out of memory.
+      internal_munmap(res, sz);
+      errno = errno_ENOMEM;
----------------
TSan runtime is supposed to mprotect all ranges that are inaccessible to the application. How does it happen that kernel still returns such an address? Do we fail to mprotect all ranges on s390? If so should that be fixed instead?
I am concerned that if kernel can return unsupported addresses, it probably can returns them very early before exhausting all supported addresses (e.g. always return unsupported from the start).
Or is it that we mprotect everything, but kernel still somehow stomps on it? If so can this address overlap with, say, tsan shadow? If yes, them the munmap will unmap our shadow which is not good.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D105629/new/

https://reviews.llvm.org/D105629



More information about the cfe-commits mailing list