Contribution: Lock Contention Profiler for HotSpot
David.Gnedt at jku.at
Fri Nov 4 11:26:28 UTC 2016
I am one of the authors of this work and I gladly support this
>>> Peter Hofer <peter.hofer at jku.at> 04.11.16 11.01 Uhr >>>
we are researchers at the University of Linz and have worked on a lock
contention profiler that is built into HotSpot. We would like to
contribute this work to the OpenJDK community.
Our profiler records an event when a thread fails to acquire a contended
lock and also when a thread releases a contended lock. It further
efficiently records the stack traces where these events occur. We
devised a versatile visualization tool that analyzes the recorded events
and determines when and where threads _cause_ contention by holding a
contended lock. The visualization tool can show the contention by stack
trace, by lock, by lock class, by thread, and by any combination of
We described our profiler in more detail in a research paper at ICPE
2016.  In our evaluation, we found that the overhead is typically
below 10% for common multi-threaded Java benchmarks. Please find a free
download of the paper on our website:
I contribute this work on behalf of Dynatrace Austria (the sponsor of
this research), my colleagues David Gnedt and Andreas Schoergenhumer,
and myself. The necessary OCAs have already been submitted.
We provide two patches:
Patch 1. A patch for OpenJDK 8u102-b14 with the profiler that we
described and evaluated in our paper, plus minor improvements. It
records events for Java intrinsic locks (monitors) and for
java.util.concurrent locks (ReentrantLock and ReentrantReadWriteLock).
We support only Linux on 64-bit x86 hardware.
Patch 2. A patch for OpenJDK 9+140 with a profiler for VM-internal
native locks only. We consider this to be useful for HotSpot developers
to find locking bottlenecks in HotSpot itself. We tested this patch only
on Linux on 64-bit x86 hardware, but it should require few changes for
With both patches, the profiler is enabled with -XX:+EnableEventTracing.
By default, an uncompressed event trace is written to file "output.trc".
More detailed usage information and a download of the corresponding
visualization tool is available on our website,
Christian Doppler Laboratory on Monitoring and Evolution of
Very-Large-Scale Software Systems / Institute for System Software
University of Linz
 Peter Hofer, David Gnedt, Andreas Schoergenhumer, Hanspeter
Moessenboeck. Efficient Tracing and Versatile Analysis of Lock
Contention in Java Applications on the Virtual Machine Level.
Proceedings of the 7th ACM/SPEC International Conference on Performance
Engineering (ICPE’16), Delft, Netherlands, 2016.
More information about the hotspot-dev