[PATCH] D15189: [tsan] Introduce a "ignore_interceptors_accesses" option

Kuba Brecka via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 3 07:03:15 PST 2015


kubabrecka created this revision.
kubabrecka added reviewers: dvyukov, kcc, glider, samsonov.
kubabrecka added subscribers: llvm-commits, zaks.anna.

On OS X, TSan already passes all unit and lit tests, but for real-world applications (even very simple ones), we currently produce a lot of false positive reports about data races.  This makes TSan useless at this point, because the noise dominates real bugs.  I'd like to introduce a runtime flag, "ignore_interceptors_accesses", off by default, which will make TSan ignore all memory accesses that happen from interceptors.  This will significantly lower the coverage and miss a lot of bugs, but it eliminates most of the current false positives on OS X.

The false positives are mostly coming from system libraries that use custom synchronization (atomics) and/or synchronize via APIs that we haven't written interceptors for yet.  This flag, "ignore_interceptors_accesses", is intended as a temporary bring-up tool, so that TSan can actually be used on a GUI app.

http://reviews.llvm.org/D15189

Files:
  lib/tsan/rtl/tsan_fd.cc
  lib/tsan/rtl/tsan_flags.inc
  lib/tsan/rtl/tsan_interceptors.cc
  lib/tsan/rtl/tsan_interface.cc
  lib/tsan/rtl/tsan_interface_atomic.cc
  lib/tsan/rtl/tsan_interface_inl.h
  lib/tsan/rtl/tsan_rtl.cc
  lib/tsan/rtl/tsan_rtl.h
  lib/tsan/rtl/tsan_rtl_mutex.cc
  lib/tsan/rtl/tsan_rtl_thread.cc

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15189.41751.patch
Type: text/x-patch
Size: 24456 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151203/33bc7d78/attachment.bin>


More information about the llvm-commits mailing list