You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Welcome to the Tsan Project!

The goal of this Project is to explore and incubate a Thread SANitizing (TSAN) feature that could be integrated into the HotSpot JVM and the JVM Tool Interface (JVM TI).  This includes working, evaluating, and incubating a Thread Sanitizer implementation for Java.


The rest of this page will provide basic information for downloading, building, and testing Java TSAN.


Note: Java TSAN is not working yet and will not be able to provide any data race information yet. The information below is really how to clone/test for developers and testers:


Cloning:

hg clone --branch tsan http://hg.openjdk.java.net/tsan/dev jdk-tsan


Installing:

TODO: since TSAN is not even integrated yet, the JDK you just branched is the mainline.


Running:

Note: the method of including the TSAN runtime in the JVM is not clean and will change in the future.

First ensure you have libtsan.so available. e.g.:

sudo apt install libgcc-8-dev

ls -l /usr/lib/gcc/x86_64-linux-gnu/8/libtsan.so

Run Java with TSAN enabled:

LD_PRELOAD=/usr/lib/gcc/x86_64-linux-gnu/8/libtsan.so ./images/jdk/bin/java -XX:+ThreadSanitizer


Testing:

Currently, the tests for TSAN are here:


make run-test  TEST="jtreg:test/hotspot/jtreg/tsan"


The tests are currently passing if TSAN is not enabled; once TSAN starts coming online, the tests will flip their assertions/expectations.

Resources

Recent space activity

Space contributors

{"mode":"list","scope":"descendants","limit":"5","showLastTime":"true","order":"update","contextEntityId":42598897}


  • No labels