# This file lists the functions, object files and source files # which should be ignored (i.e. not instrumented) by ThreadSanitizer. # ignore these libraries obj:*/ld-2* obj:*/libpthread-* obj:*/libfreetype* # we ignore the whole NSS library for now since # its instrumentation is very slow. # TODO(timurrrr): investigate whether we need to instrument it obj:*/libnss* obj:*/nss/* # ignore this standard stuff fun:clone fun:fork fun:pthread_* fun:random_r fun:random fun:rand fun:__lll_mutex_unlock_wake fun:__cxa_atexit fun:__new_exitfn fun:_dl_* fun:__dl_* # dark magic with 'errno' here. fun:sys_* # ignore libc's printf functions fun:_IO_* fun:vfprintf fun:fwrite fun:fflush # 32-bit version of std::string # There is something very strange inside these functions. # Looks like they write zero to a global variable which # value is already zero. I.e. the race is benign. # Global var is _ZNSs4_Rep20_S_empty_rep_storageE fun:*_M_mutateE* fun:*_M_set_length_and_sharable* fun:*_M_is_leaked* fun:*_M_is_shared* fun:*_M_set_leaked* fun:*_M_set_sharable* # Don't instrument intercepts src:*ts_valgrind_intercepts.c ################################################################## # Don't instrument syncronization code src:*base/waitable_event* src:*base/atomic* src:*base/condition_variable* src:*base/lock* src:*base/stats_counters* src:*base/thread_local_storage_posix* # This function is heavy in net_unittests fun:*disk_cache*BackendImpl*CheckAllEntries* # V8 is a hot-spot under ThreadSanitizer. # Lots of tiny functions there... # TODO(timurrrr): Should we use coarser segment granularity for this file? # Can we miss data races on V8 objects due to non thread-safe API calls # if we don't instrument v8::internals? fun:*v8*internal* # TODO(timurrrr): SKIA - needs separate testing? # SKIA unittest is single-threaded... # SKIA uses un-annotated atomic refcount and other sync stuff # some functions are HEAVY like png, jpeg decoding src:*third_party/skia* # WebKit hotspot fun:*png_write*