• Home
    • View
    • Login
    This page
    • Normal
    • Export PDF
    • Export Word
    • Attachments
    • Page Information

    Loading...
  1. Dashboard
  2. Tsan
  3. Main

Page History

Versions Compared

Old Version 12

changes.mady.by.user Man Cao

Saved on May 15, 2019

compared with

New Version 13

changes.mady.by.user Arthur Eubanks

Saved on Jul 02, 2019

  • Previous Change: Difference between versions 11 and 12
  • Next Change: Difference between versions 13 and 14
  • View Page History

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Welcome to the TSAN Project!

The goal of this Project is to explore and incubate a Thread SANitizing SANitizer (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 build/test for developers and testers:

Prerequistes

Java TSAN is dependent on the C/C++ ThreadSanitizer implementation for GCC/LLVM. Java TSAN requires a new API for proper symbolization of Java stack traces, which is only available in update-to-date versions of C/C++ ThreadSanitizer. This requires building OpenJDK with LLVM 7.0 or later, or GCC 9 or later. Currently we recommend developers and testers use LLVM 8.0.

Building

Java TSAN implementation is in the "tsan" branch in the Mercurial repository. Developers need to clone this branch:

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


Java TSAN exists as a JVM feature "tsan", which is enabled by default on the "tsan" branch in the repository. It can be disabled with the configure flag "--with-jvm-features=-tsan".

To build OpenJDK with LLVM, pass the configure flags "--with-toolchain-type=clang --with-toolchain-path=<path_to_llvm_root_dir>/bin".

Running

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

Run Java with TSAN enabled:

./images/jdk/bin/java -XX:+ThreadSanitizer

Testing

The tests for TSAN are at test/hotspot/jtreg/tsan/

make jdk-image test-image

make test TEST="hotspot/jtreg/tsan"

Resources

  • TSAN Project
  • TSAN JEP proposal
  • Repositories
  • Mailing list: tsan-dev

Recent space activity

Recently Updated
typespage, comment, blogpost
max5
hideHeadingtrue
themesocial

Space contributors

Contributors
modelist
scopedescendants
limit5
showLastTimetrue
orderupdate


Overview
Content Tools
ThemeBuilder

Terms of Use
• License: GPLv2
• Privacy • Trademarks • Contact Us

Powered by a free Atlassian Confluence Open Source Project License granted to https://www.atlassian.com/software/views/opensource-community-additional-license-offer. Evaluate Confluence today.

  • Kolekti ThemeBuilder Powered by Atlassian Confluence 8.5.21
  • Kolekti ThemeBuilder printed.by.atlassian.confluence
  • Report a bug
  • Atlassian News
Atlassian
Kolekti ThemeBuilder EngineAtlassian Confluence
{"serverDuration": 286, "requestCorrelationId": "97a488f3395894fa"}