[15] RFR 8245240: Shenandoah: support nesting evacuation OOM scope
Zhengyu Gu
zgu at redhat.com
Tue May 19 12:15:21 UTC 2020
Currently, Shenandoah does no support nesting evacuation OOM scope, that
presents a several drawbacks:
1) Can not allow barriers on some/many GC paths, manifested by
JDK-8237396 and JDK-8242216. Although, we fixed them in shared code, but
sooner or later, the problem will likely pop up again.
2) We have to setup the scope closes to evacuation code and narrows the
scope. Setting up and tearing down scope are expensive, while nesting
is a lot cheaper.
3) Complicates code, have to deal with weather the call comes from GC or
barrier.
Supporting nesting scope is actually quite simple and cheap. We only
need the top level scope to participate evacuation OOM protocol (enter
and exit the protocol), while nesting scope simply push/pop nesting level.
With nesting scope support, we can setup the scope early, e.g. once
per-worker task. It shows very promising performance improvement for
code roots processing during concurrent class unloading.
Bug: https://bugs.openjdk.java.net/browse/JDK-8245240
Webrev: http://cr.openjdk.java.net/~zgu/JDK-8245240/webrev.00/index.html
Test:
hotspot_gc_shenandoah
tier1 with Shenandoah
Thanks,
-Zhengyu
More information about the shenandoah-dev
mailing list