[llvm-dev] tsan_interface_java.h; any users? reviving https://github.com/google/java-thread-sanitizer? (original) (raw)
Jaeheon Yi via llvm-dev llvm-dev at lists.llvm.org
Fri Sep 1 10:51:00 PDT 2017
- Previous message: [llvm-dev] tsan_interface_java.h; any users? reviving https://github.com/google/java-thread-sanitizer?
- Next message: [llvm-dev] Compile LLVM into LLVM IR with non-Xcode Clang
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, Sep 1, 2017 at 7:14 AM, Jiri Danek <jdanek at redhat.com> wrote:
On Fri, Sep 1, 2017 at 1:33 AM, Jaeheon Yi <jaeheon at google.com> wrote:
The interface files you see are for a prototype of Java Tsan that's internal to Google. It's for use by a JDK that we customized with extensive JVM patches, and enables running the Tsan engine on Java and native code simultaneously.
We presented this prototype recently at the JVM Language Summit. Here's the talk: https://www.youtube.com/watch?v=UykhZ36W04I We are starting to explore how to upstream the JVM patches. It's going to be tricky: The patches are fairly invasive, the setup and expectations are different in terms of upstream vs. home-grown build system, and the whole thing will require healthy upstream buy-in. This will all take time, so no promises of a speedy release, unfortunately. I can imagine. Thanks for the info and the talk. I am not holding my breath. Since you seem to be ok with bytecode rewriting (we have reasons for not doing that), I would like to point you to FastTrack, a pure-Java implementation of the Happens-Before race detection algorithm. https://github.com/stephenfreund/RoadRunner (Disclosure) I worked with the tool and the authors in my grad student days. I see it's been updated recently too, so feel free to give it a spin. Thanks! I did. It seems not to understand Thread Pools. JDK docs say "Memory consistency effects: Actions in a thread prior to submitting a Runnable object to an Executor happen-before its execution begins, perhaps in another thread.", but if I am reading the errors from RoadRunner properly, the tool does not see that. Other than that, it seems to work.
Check out InstrumentationFilter. I recall we avoided instrumenting JDK classes (for $reasons; I don't remember), but maybe you can add just the Executor class you need.
--
Jiří Daněk -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170901/406bf950/attachment.html>
- Previous message: [llvm-dev] tsan_interface_java.h; any users? reviving https://github.com/google/java-thread-sanitizer?
- Next message: [llvm-dev] Compile LLVM into LLVM IR with non-Xcode Clang
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]