There should be 1-bit unused field between tid field and is_atomic field of Shadow.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
When we access is_atomic field, we use kAtomicShift, which is 48. And when we access tid field, we use kTidShift, which is 50.
If I Understand It Correctly, there should be 1-bit unused field between tid field and is_atomic field of Shadow.
but rtl-old should be deleted now.
Hi @dvyukov, Is there any plan when rtl-old will be deleted, right now ? If so, I won't commit this patch.
BTW, AFAIK tsan v2 uses pure happen-befores similar to FastTrack(PLDI'09), Is there any change in v3, are we still use this algorithm ?
Thanks!
@thakis does Chrome still need rtl-old?
It already misses some fixes that rtl/ has and may be build broken.
I would say tsan v2 used algorithm similar to Relacy'08, but ok :)
v3 uses the same algorithm on high-level.
Haha, I read tsan v2 use algorithm similar to FastTrack(PLDI'09) from "AddressSanitizer, ThreadSanitizer and MemorySanitizer -- Dynamic Testing Tools for C++ @ GTAC2013".
Is there any paper about the Relacy'08 algorithm? I only found your relacy github repo
I want to dive into the algorithm behind tsan.
Thanks!