RFR: 8235260: Shenandoah: Do concurrent roots even when no evacuation is necessary

Roman Kennke rkennke at redhat.com
Tue Dec 3 16:29:50 UTC 2019


For concurrent class-unloading, we already found that we need to prevent
recycle-assist until concurrent roots processing is over, otherwise we
may get dangling pointers to a new region, which suddenly starts to
appear as live again because objects get allocated in them. The same
problem still exists for humongous regions, and we need to prevent using
trashed regions for humongous allocations until we're done with
concurrent roots.

The solution is to treat trashed regions as non-empty as long as
concurrent roots is in progress.

Bug:
https://bugs.openjdk.java.net/browse/JDK-8235260
Webrev:
http://cr.openjdk.java.net/~rkennke/JDK-8235260/webrev.00/

Testing: hotspot_gc_shenandoah
This used to fail with the upcoming concurrent roots cleaning that I
have in progress, and passes now.

Roman




More information about the hotspot-gc-dev mailing list