You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to thread-sanitizer
Hi everyone,
I wanted to ask if there is a good explanation of how TSAN works. I
tried to read
https://github.com/google/sanitizers/wiki/ThreadSanitizerAlgorithm but
it seems too vague. I tried to search for some additional info but somehow I can find articles
only about old valgrind-based implementation. I'm just curious, and want
to know more details. Could you point me on any article/docs about TSAN
algorithm used in current implementation?
Also, I have another question: I know that helgrind/drd are still
sensetive to "wrong" omp binaries. So you have to compile libgomp with
special option to turn off futex-based synchronization, because
helgrind/drd does not perceive futex-based synchronization as a
synchronization and produces a lot of false-positives if gomp is built
with it. Does TSAN have similar limitations?
Thanks in advance.
i.haniiev
unread,
Nov 12, 2018, 4:50:29 PM11/12/18
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
it seems too vague. I tried to google but somehow I can find articles
only about old valgrind-based implementation. I'm just curious, and want
to know more details. Could you point me on any article/docs about TSAN
algorithm?
Also, I have another question: I know that helgrind/drd are still
sensetive to "wrong" omp binaries. So you have to compile libgomp with
special option to turn off futex-based synchronization, because
helgrind/drd does not perceive futex-based synchronization as a
synchronization and produces a lot of false-positives if gomp is built
with it. Does TSAN have similar limitations?
Thanks in advance,
Ibraim Ganiev.
Dmitry Vyukov
unread,
Nov 17, 2018, 12:23:46 AM11/17/18
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to thread-s...@googlegroups.com
On Mon, Nov 12, 2018 at 11:42 AM, Ibraim Ganiev <olol...@gmail.com> wrote:
> Hi everyone,
> I wanted to ask if there is a good explanation of how TSAN works. I tried to
> read https://github.com/google/sanitizers/wiki/ThreadSanitizerAlgorithm but
> it seems too vague. I tried to search for some additional info but somehow I
> can find articles only about old valgrind-based implementation. I'm just
> curious, and want to know more details. Could you point me on any
> article/docs about TSAN algorithm used in current implementation?
Hi Ibraim,
Here are some videos and presentations about tsan internals:
But of course code is the ultimate source of truth :)
> Also, I have another question: I know that helgrind/drd are still sensetive
> to "wrong" omp binaries. So you have to compile libgomp with special option
> to turn off futex-based synchronization, because helgrind/drd does not
> perceive futex-based synchronization as a synchronization and produces a lot
> of false-positives if gomp is built with it. Does TSAN have similar
> limitations?