From: Dmitry Vyukov Date: Tue, 28 Sep 2021 14:43:28 +0000 (+0200) Subject: tsan: fix cur_thread alignment X-Git-Tag: upstream/15.0.7~30280 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f3932ae1a078075e9e35f51ead3aaca05a9a23c7;p=platform%2Fupstream%2Fllvm.git tsan: fix cur_thread alignment Commit 354ded67b3 ("tsan: align ThreadState to cache line") did an incomplete thing. It marked ThreadState as cache line aligned, but the thread local ThreadState instance is declared as an aligned char array with hard-coded 64-byte alignment. On PowerPC cache line size is 128 bytes, so the hard-coded 64-byte alignment is not enough. Use cache line alignment consistently. Differential Revision: https://reviews.llvm.org/D110629 --- diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp b/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp index d679282..ea7ff56 100644 --- a/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp +++ b/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp @@ -43,9 +43,10 @@ int (*on_finalize)(int); #if !SANITIZER_GO && !SANITIZER_MAC __attribute__((tls_model("initial-exec"))) -THREADLOCAL char cur_thread_placeholder[sizeof(ThreadState)] ALIGNED(64); +THREADLOCAL char cur_thread_placeholder[sizeof(ThreadState)] ALIGNED( + SANITIZER_CACHE_LINE_SIZE); #endif -static char ctx_placeholder[sizeof(Context)] ALIGNED(64); +static char ctx_placeholder[sizeof(Context)] ALIGNED(SANITIZER_CACHE_LINE_SIZE); Context *ctx; // Can be overriden by a front-end.