RFR: 8327000: GenShen: Integrate updated Shenandoah implementation of FreeSet into GenShen [v27]
Kelvin Nilsen
kdnilsen at openjdk.org
Tue Jun 25 22:05:32 UTC 2024
On Tue, 25 Jun 2024 22:02:15 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:
>> src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp line 329:
>>
>>> 327: if (gc.collect(cause)) {
>>> 328: // Cycle is complete
>>> 329: heap->notify_gc_progress();
>>
>> I am trying to understand this. Is the following a reasonable summary of the underlying reasoning?
>>
>> Any concurrent cycle that completes without degenerating is considered progress irrespective of whether it reclaimed anything. The idea is that if there were allocations during that concurrent cycle, they will have succeeded because, if not we'd have degenerated and not reached here: "collect()" would have returned "false".
>
> Right. The idea is that we completed concurrent GC without a failed allocation, and thus concurrent GC was not cancelled...
I suppose we could be more "careful" about how we characterize progress...
-------------
PR Review Comment: https://git.openjdk.org/shenandoah/pull/440#discussion_r1653628390
More information about the shenandoah-dev
mailing list