Eliminating Data Races in Firefox – A Technical Report

The Mozilla Hacks site has a
report on the use of ThreadSanitizer
to detect and fix data races in
the Firefox browser. “While benign data races do exist, we found
that data races are
very easily misclassified as benign. The reasons for this are clear: It is
hard to reason about what compilers can and will optimize, and confirmation
for certain ‘benign’ data races requires you to look at the assembler code
that the compiler finally produces. Needless to say, this procedure is
often much more time consuming than fixing the actual data race and also
not future-proof. As a result, we decided that the ultimate goal should be
a ‘no data races’ policy that declares even benign data races as
undesirable due to their risk of misclassification, the required time for
investigation and the potential risk from future compilers (with better
optimizations) or future platforms (e.g. ARM).


Source: LWN.net – Eliminating Data Races in Firefox – A Technical Report