RFR(M): Support running TSAN without LD_PRELOAD.

Man Cao manc at google.com
Fri Apr 12 03:03:18 UTC 2019


> TSAN was enabled by default right? I think when this gets upstreamed it
should be off by default, but for our branch this is good.
Yes. It is enabled by default, and can be disabled via
--with-jvm-features=-tsan.
It is easy to change to disable it by default by modifying hotspot.m4.

> Is it possible to put the TSAN stuff in the gmk higher up so you can use
LIBS instead of LDFLAGS?
I think that would require propagating the INCLUDE_TSAN parameter all the
way through SetupJdkExecutable -> SetupNativeCompilation.
Then we end up at "make/common/NativeCompilation.gmk:1047", which has
another GLOBAL_LIBS that could prepend other -l flags before -ltsan.
It seems too much work and could affect compilations outside the launcher
directory

> Ps: Please update installation and testing info in the wiki once merged
:)
Will do. The wiki site seems down at the moment.

-Man


On Thu, Apr 11, 2019 at 7:23 PM Jean Christophe Beyler <jcbeyler at google.com>
wrote:

> LGTM, I would like to try to figure out how to have the suppress list in a
> file at some point but we can figure that out later,
> Jc
>
> Ps: Please update installation and testing info in the wiki once merged :)
>
> On Thu, Apr 11, 2019 at 6:58 PM Arthur Eubanks <aeubanks at google.com>
> wrote:
>
>> TSAN was enabled by default right? I think when this gets upstreamed it
>> should be off by default, but for our branch this is good.
>> Awesome that "make test" just works now!
>>
>> Is it possible to put the TSAN stuff in the gmk higher up so you can use
>> LIBS instead of LDFLAGS?
>>
>> On Thu, Apr 11, 2019 at 5:44 PM Man Cao <manc at google.com> wrote:
>>
>> > Can I have reviews for this:
>> > http://cr.openjdk.java.net/~manc/tsan/20190411/
>> >
>> > Commit message:
>> >
>> > This dynamically links TSAN runtime with the launcher bin/java, and
>> moves
>> > the default suppression list into hard-coded string in the launcher's
>> > source. With this change, we can just use the following command to run
>> tsan
>> > tests:
>> > $ make test TEST="hotspot/jtreg/tsan"
>> >
>> > Currently only NonRacyNativeLoopTest fails due to missing lock
>> > instrumentation.
>> > Also refactored hotspot.m4 to consolidate TSAN-related code into one
>> block.
>> >
>> > -Man
>> >
>>
>
>
> --
>
> Thanks,
> Jc
>


More information about the tsan-dev mailing list