Upstream version 9.37.197.0
[platform/framework/web/crosswalk.git] / src / tools / valgrind / tsan / ignores.txt
1 # This file lists the functions, object files and source files
2 # which should be ignored (i.e. not instrumented) by ThreadSanitizer.
3 # See http://code.google.com/p/data-race-test/wiki/ThreadSanitizerIgnores.
4
5 # ignore these libraries
6 obj:*/libfreetype*
7 obj:*/libdbus*
8
9 # we ignore the whole NSS library for now since
10 # its instrumentation is very slow.
11 # TODO(timurrrr): investigate whether we need to instrument it
12 obj:*/libnss*
13 obj:*/nss/*
14
15 # ignore pulseaudio - We don't have symbols there and it can be slow otherwise
16 obj:*/libpulse*.so*
17
18 # ignore this standard stuff
19 fun:clone
20 fun:fork
21 fun:pthread_*
22 fun_r:_pthread_exit
23 fun_r:_pthread_free_pthread_onstack
24 fun_r:random_r
25 fun_r:random
26 fun_r:rand
27 fun_r:srand
28 fun:__new_exitfn
29 fun:_dl_*
30 fun:__dl_*
31 fun:*_setjmp*
32
33 # dark magic with 'errno' here.
34 fun:sys_*
35
36 # ignore libc's printf functions
37 fun_r:_IO_*
38 fun:fwrite
39 fun:fflush
40
41 # False reports on std::string internals, see
42 # http://code.google.com/p/data-race-test/issues/detail?id=40
43 fun:*_M_mutateE*
44 fun_r:*_M_set_length_and_sharable*
45 fun:*_M_is_leaked*
46 fun:*_M_is_shared*
47 fun:*_M_set_leaked*
48 fun:*_M_set_sharable*
49
50 # Comparison of std::strings sometimes takes a lot of time but we don't really
51 # need precise stack traces there.
52 fun_hist:_ZStltIcSt11char_traitsIcESaIcEEbRKSbIT_T0_T1_ES8_
53 fun_hist:_ZNKSs7compareERKSs
54
55 # Don't instrument intercepts
56 src:*ts_valgrind_intercepts.c
57
58 ##################################################################
59 # Don't instrument synchronization code
60 src:*base/threading/thread_local_storage*
61 src:*base/stats_counters*
62 src:*base/synchronization/condition_variable*
63 src:*base/synchronization/lock*
64 src:*base/synchronization/waitable_event*
65
66 # Don't instrument code dealing with atomics (base::subtle)
67 fun:*base*subtle*Release_Store*
68 fun:*base*subtle*NoBarrier_CompareAndSwap*
69 fun:*base*subtle*NoBarrier_Load*
70 # Keep some mangling so we don't match NoBarrier_AtomicIncrement
71 fun:*base*subtle23Barrier_AtomicIncrement*
72
73 # MD5 computations are very slow due since sums are computed by
74 # repeatedly calling tiny functions and is unlikely to race with
75 # anything.
76 src:*base/md5*
77
78 # Don't instrument tcmalloc
79 src:*/tcmalloc/*
80
81 # This function is heavy in net_unittests
82 fun_r:*disk_cache*BackendImpl*CheckAllEntries*
83
84 # V8 is a hot-spot under ThreadSanitizer.
85 # Lots of tiny functions there...
86 # TODO(timurrrr):
87 # Can we miss data races on V8 objects due to non thread-safe API calls
88 # if we don't instrument v8::internals?
89 fun_r:*v8*internal*
90
91 # unibrow namespace contains lots of tiny unicode conversion functions.
92 fun_hist:*unibrow*
93
94 # Histogram has tiny functions that can be called frequently
95 fun_hist:*Histogram*
96 # Recursively ignore Histrogram::Add and friends, see http://crbug.com/62694.
97 fun_r:*4base*9Histogram*3Add*
98 fun_r:*4base*16HistogramSamples*3Add*
99 fun_r:*4base*13HistogramBase*7AddTime*
100
101 # TODO(timurrrr): SKIA - needs separate testing?
102 # SKIA unittest is single-threaded...
103 # SKIA uses un-annotated atomic refcount and other sync stuff
104 # some functions are HEAVY like png, jpeg decoding
105 src:*third_party/skia*
106
107 # WebKit hotspot
108 fun:*png_write*
109
110 # This function generates 25% of memory accesses in net_unittests
111 fun:*icu_4_2*UnicodeSet*add*
112
113 # SQLite has lots of tiny functions and produce too many segments on some tests.
114 # See http://crbug.com/56511
115 fun_hist:*sqlite*
116
117 # There's some weird failure test going on in this tiny test function in sqlite
118 fun_r:threadLockingTest
119
120 # Ignore accesses below GetCurrentThreadIdentifier.
121 # There is a benign race which is hard to suppress properly,
122 # see http://crbug.com/44580
123 fun_r:*BrowserThread*GetCurrentThreadIdentifier*
124
125 # BrowserThread accesses MessageLoop::current() in ::CurrentlyOn.
126 # We can't use suppressions to hide these reports since the concurrent stack
127 # is simply "base::Thread::ThreadMain"
128 # See http://crbug.com/63678
129 fun_r:*BrowserThread*CurrentlyOn*
130
131 # zlib is smarter than we are, see http://www.zlib.net/zlib_faq.html#faq36
132 fun_r:inflate
133 # zlib-related reports, not investigated yet. See http://crbug.com/70932
134 fun_r:*remoting*CompressorZlib*Process*
135
136 # X11 reads the _XErrorFunction callback in a racey way, see
137 # http://crbug.com/65278
138 fun:XSetErrorHandler
139
140 fun:*IPC*Logging*Enable*
141 fun:*IPC*Logging*Disable*
142
143 # TSan doesn't support lockf and hence shared memory locks in this function;
144 # http://crbug.com/45083
145 fun_r:*base*StatsTable*AddCounter*
146
147 # TSan doesn't understand internal libc locks, see http://crbug.com/71435
148 fun_r:mbsrtowcs
149
150 # gethostbyname2_r is thread-safe, however ThreadSanitizer reports races inside it and
151 # (sometimes) in __nss_* functions below it.
152 # This may be related to
153 # https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/59449
154 fun_r:gethostbyname2_r*
155
156 # TODO(timurrrr): remove this when TSan is updated past r3232
157 fun_r:gaih_inet
158
159 # Strange reports below _IO_getline, every time in "Concurrent access".
160 # Probably the reports are there since we're missing the libc internal locks
161 fun_r:_IO_getline*
162
163 # A benign race in glib on something called "contention_counter". 
164 fun:g_slice_alloc
165
166 # A benign race in glibc on "random_time_bits".
167 fun:__gen_tempname
168
169 # A probably-benign race on '__have_o_cloexec' in opendir/__alloc_dir,
170 # see http://crbug.com/125928.
171 fun_r:__alloc_dir
172 fun_r:opendir
173
174 # The sqlite cache is racing against a few different stacktraces,
175 # so let's ignore it recursively. See http://crbug.com/84094
176 fun_r:pcache1Fetch
177
178 # "Suppress" a data race in TraceLog::GetCategory which has
179 # fun:MessageLoop::RunTask at the top of the "current" stack which we don't want
180 # to suppress. See http://crbug.com/98926
181 fun:*base*debug*TraceLog*GetCategoryInternal*
182
183 # libc threading on GCC 4.6 
184 fun:arena_thread_freeres
185
186 # __strncasecmp_l_ssse3 overreads the buffer causing TSan to report a data race
187 # on another object. See http://crbug.com/177074
188 fun:*strncasecmp*
189 fun:*strcasecmp*