RFR: Disable merged cleanup for full GC
Roman Kennke
rkennke at redhat.com
Thu Jun 29 07:54:48 UTC 2017
Am 29.06.2017 um 08:51 schrieb Aleksey Shipilev:
> On 06/29/2017 07:55 AM, Aleksey Shipilev wrote:
>> On 06/28/2017 10:41 PM, Roman Kennke wrote:
>>> The 'solution' for now is to disable merged monitor deflation
>>> for full GC:
>>>
>>> http://cr.openjdk.java.net/~rkennke/disable-merged-cleanup-fullgc/webrev.00/
>> Okay, good!
> I now wonder if this is a harbinger of larger problem: what if Full GC hits when
> there are forwarded objects, and there are references to both copies in heap?
> Would it keep both copies alive?
The GC code does not use the public read-barrier code. It should be fine.
However, I agree that this code is a hack. I would like to see the
special BarrierSet gone altogether. IMO, no GC code paths should hit the
public read-barriers. I will have a look if that can possibly be done.
> I guess we need to first complete the marking phase in Full GC, which would need
> to update references (need_update_refs = true is set unconditionally, but it is
> useless with disabled read barriers?), then turn read barriers on, and go on
> with moving the objects.
Failing the removal of the special BarrierSet, this seems like the next
saner option, yes. :-)
For the time being, can I push the proposed fix?
Roman
>
> Thanks,
> -Aleksey
>
More information about the shenandoah-dev
mailing list