DynamoRIO backend and C++11 thread

1 view
Skip to first unread message

gokcehan kara

unread,
Oct 9, 2012, 5:31:57 PM10/9/12
to data-ra...@googlegroups.com
Hello,

I have got two questions..

I have been using DynamoRIO for binary instrumentation lately and I saw Google trademark in some of the source code. Since it is being supported by Google, are there any efforts/plans to port ThreadSanitizer to DynamoRIO or implement a brand new race detection tool in DynamoRIO? (there are none atm afaik, am I right?)

Secondly, I was wondering the current state of C++11 thread support in ThreadSanitizer as well as other race tools that you're aware (helgrind, drd, intel tc..)

hope this is not the wrong place to ask.

thanks in advance,
gokcehan

Konstantin Serebryany

unread,
Oct 10, 2012, 12:08:29 AM10/10/12
to data-ra...@googlegroups.com, gokceh...@gmail.com
gokcehan, 

We don't have plans to port ThreadSanitizer to DynamoRIO in the near future because we are concentrated on 
the new version based on LLVM. http://clang.llvm.org/docs/ThreadSanitizer.html

Neither version supports C++11 threading today, but it should be more or less trivial to add such support.
We will do it eventually, but you are welcome to help. :) 

--kcc 



--
You received this message because you are subscribed to the Google Groups "data-race-test" group.
To view this discussion on the web visit https://groups.google.com/d/msg/data-race-test/-/FMq1iMZY_wQJ.
To post to this group, send email to data-ra...@googlegroups.com.
To unsubscribe from this group, send email to data-race-tes...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/data-race-test?hl=en.

Dmitry Vyukov

unread,
Oct 10, 2012, 4:50:54 AM10/10/12
to data-ra...@googlegroups.com, gokceh...@gmail.com
On Wed, Oct 10, 2012 at 8:08 AM, Konstantin Serebryany <konstantin....@gmail.com> wrote:
gokcehan, 

We don't have plans to port ThreadSanitizer to DynamoRIO in the near future because we are concentrated on 
the new version based on LLVM. http://clang.llvm.org/docs/ThreadSanitizer.html

Neither version supports C++11 threading today, but it should be more or less trivial to add such support.

What exactly C++11 primitives are you interested in?
It supports C++11 atomic ops (at least with clang std lib, for others it depends on impl), it should also support thread/mutex if they are wrapped around pthread and/or use supported atomic ops.

gokcehan kara

unread,
Oct 10, 2012, 7:23:56 AM10/10/12
to Dmitry Vyukov, data-ra...@googlegroups.com
well, I don't really know as I barely even used C++11 threads. I was just looking for a term project for my verification class. let me know if you have something I could be interested. I would be glad to contribute..

Dmitry Vyukov

unread,
Oct 10, 2012, 7:53:58 AM10/10/12
to data-ra...@googlegroups.com
On Wed, Oct 10, 2012 at 3:23 PM, gokcehan kara <gokceh...@gmail.com> wrote:
well, I don't really know as I barely even used C++11 threads. I was just looking for a term project for my verification class. let me know if you have something I could be interested. I would be glad to contribute..



Hi,

There are 2 separable pieces of ThreadSanitizer that come to mind:
1. So called scheduler shaker, that is, insert some delays into program execution to trigger/reveal more bugs. The interesting parts here are: (a) how to choose delay values and (b) how many new bugs we find with this approach (potentially as a function of something).
2. Modelling of C1x/C++11 relaxed memory model. This allows to reveal more bugs and find bugs that can happen mostly on POWER/ARM on x86 platform.

Konstantin Serebryany

unread,
Oct 11, 2012, 3:32:55 AM10/11/12
to data-ra...@googlegroups.com
On Wed, Oct 10, 2012 at 3:53 PM, Dmitry Vyukov <dvy...@google.com> wrote:
On Wed, Oct 10, 2012 at 3:23 PM, gokcehan kara <gokceh...@gmail.com> wrote:
well, I don't really know as I barely even used C++11 threads. I was just looking for a term project for my verification class. let me know if you have something I could be interested. I would be glad to contribute..



Hi,

There are 2 separable pieces of ThreadSanitizer that come to mind:
1. So called scheduler shaker, that is, insert some delays into program execution to trigger/reveal more bugs. The interesting parts here are: (a) how to choose delay values and (b) how many new bugs we find with this approach (potentially as a function of something).
2. Modelling of C1x/C++11 relaxed memory model. This allows to reveal more bugs and find bugs that can happen mostly on POWER/ARM on x86 platform.

3. writing positive (racy) and negative (correct) tsan tests using c++11  
Reply all
Reply to author
Forward
0 new messages