RFR: 8235260: Shenandoah: Do concurrent roots even when no evacuation is necessary
rkennke at redhat.com
Tue Dec 3 20:16:19 UTC 2019
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