RFR: 8235260: Shenandoah: Do concurrent roots even when no evacuation is necessary
zgu at redhat.com
Tue Dec 3 20:17:11 UTC 2019
On 12/3/19 3:16 PM, Roman Kennke wrote:
> Ok. Like this?
>> 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.
>>> Testing: hotspot_gc_shenandoah
>>> This used to fail with the upcoming concurrent roots cleaning that I
>>> have in progress, and passes now.
More information about the hotspot-gc-dev