RFR: Revert Shenandoah/JDK8-only changes relating to MonitorInUseLists
Roman Kennke
rkennke at redhat.com
Thu Jul 11 20:52:06 UTC 2019
We have a bunch of modifications in synchronizer.cpp and thread.cpp
relating to how ObjectSynchronizer roots get processed:
- There is ParallelObjectSynchronizerIterator, which can iterate
synchronizer roots using more than one thread
- We code that allows to process thread-local monitors via
Threads::oops_do() when running with -XX:+MonitorInUseLists
The latter changes have recently been reported to be broken:
https://mail.openjdk.java.net/pipermail/shenandoah-dev/2019-July/010113.html
Overall, it seems rather risky, and doesn't actually gain that much, and
+MonitorInUseLists is not on by default either.
I first wanted to revert both the above changes, but after some
consideration I only reverted the 2nd one. The first change can be fully
moved into gc_implementation/shenandoah, the only part of it that
remains in synchronizer.hpp is a friend declaration to
ShenandoahSynchronizerIterator. This seems risk-free, and avoids
regressing pause-times.
http://cr.openjdk.java.net/~rkennke/shjdk8-revert-syncstuff/webrev.00/
Testing: hotspot_gc_shenandoah, checked specjbb latency
Can I please get a review?
Thanks,
Roman
More information about the shenandoah-dev
mailing list