llvm-project/compiler-rt/lib/tsan
Dmitry Vyukov b5ff187b7b tsan: mmap shadow stack
We used to mmap C++ shadow stack as part of the trace region
before ed7f3f5bc9 ("tsan: move shadow stack into ThreadState"),
which moved the shadow stack into TLS. This started causing
timeouts and OOMs on some of our internal tests that repeatedly
create and destroy thousands of threads.
Allocate C++ shadow stack with mmap and small pages again.
This prevents the observed timeouts and OOMs.
But we now need to be more careful with interceptors that
run after thread finalization because FuncEntry/Exit and
TraceAddEvent all need the shadow stack.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D113786
2021-11-13 09:12:55 +01:00
..
benchmarks compiler-rt: Rename .cc file in lib/tsan/{benchmarks,dd,go} to .cpp 2019-08-01 14:30:49 +00:00
dd tsan/dd: fix format strings 2021-08-13 17:45:29 +02:00
go Revert "tsan: new runtime (v3)" 2021-11-12 17:49:47 +01:00
rtl tsan: mmap shadow stack 2021-11-13 09:12:55 +01:00
tests Revert "tsan: new runtime (v3)" 2021-11-12 17:49:47 +01:00
.clang-format Revert "sanitizers: increase .clang-format columns to 100" 2021-07-28 09:40:21 +02:00
CMakeLists.txt Revert "tsan: new runtime (v3)" 2021-11-12 17:49:47 +01:00
analyze_libtsan.sh [compiler-rt] Use portable "#!/usr/bin/env bash" shebang for tests. 2021-09-24 19:10:07 +05:30
check_analyze.sh [compiler-rt] Use portable "#!/usr/bin/env bash" shebang for tests. 2021-09-24 19:10:07 +05:30
check_cmake.sh [compiler-rt] Use portable "#!/usr/bin/env bash" shebang for tests. 2021-09-24 19:10:07 +05:30