LLVM Prepares New ThreadSanitizer Runtime That Is Faster, Lower Memory Use

Written by Michael Larabel in LLVM on 26 November 2021 at 05:40 AM EST. 7 Comments
LLVM
LLVM developers have been working recently to land their new ThreadSanitizer run-time. The TSan as a reminder is the compiler instrumentation with associated run-time library for being able to detect data races.

ThreadSanitizer is successful at detecting data race conditions even within large and complex code-bases. But unfortunately it's quite burdensome to enable with performance slowing down in the range of 5~15x while the run-time memory overhead can be in the range of 5~10x.

With LLVM's new ThreadSanitizer run-time the shadow memory is 2x smaller, or about 2x of the conventional application memory usage. There is also faster fully-vectorized race detection, fast vectorized vector clock operations, and can handle an unlimited number of alive threads/goroutines. In other words, the new TSan run-time is a big improvement over the current code.

The developers have been working to land this new run-time but have had to revert it due to test failures. Improved test cases and other ThreadSanitizer enhancements have landed while the latest TSan run-time patch was posted here awaiting a fresh merge where it will hopefully all be in order for speeding up ThreadSanitizer.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week