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

Zhengyu Gu zgu at redhat.com
Tue Dec 3 19:55:48 UTC 2019

Hi Roman,

Fix looks good. Probably should change the method name 
is_empty_or_trash() to thing like can_allocate_from() ...



On 12/3/19 11:29 AM, Roman Kennke wrote:
> 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/Fix
> 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