RFR: 8327000: GenShen: Integrate updated Shenandoah implementation of FreeSet into GenShen [v27]
William Kemper
wkemper at openjdk.org
Tue Jun 25 21:42:33 UTC 2024
On Tue, 25 Jun 2024 20:38:37 GMT, Y. Srinivas Ramakrishna <ysr at openjdk.org> wrote:
>> Kelvin Nilsen has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Improve consistency of OOM in GenShen mode
>>
>> Treat any full GC that enables a previously blocked allocation as good
>> progress.
>
> src/hotspot/share/gc/shenandoah/shenandoahDegeneratedGC.cpp line 307:
>
>> 305: // because that probably means the heap is overloaded and/or fragmented.
>> 306: if (!metrics.is_good_progress()) {
>> 307: heap->notify_gc_no_progress();
>
> Again, let me make sure I understand the reasoning here:
>
> We are already going to cancel gc and degenerate, so the concurrent collect will return failure, and the control thread will not record progress.
>
> But I don't see anything that actually records lack of progress.
>
> I assume then that a degenerated GC in and of itself isn't indicative of lack of progress, and that lack of progress shouldn't be recorded here, but rather after having worked harder, perhaps in `op_degenerated_futile()`?
>
> It would be good to leave some clarifying comments for when we read this code many months later and have forgotten the context. May be something like:
>
>
> // We haven't made progress; we'll try harder by canceling GC and upgrading to a full gc
> // to see if we make more progress.
I think that's intentional. We only want to record no-progress after a full GC.
-------------
PR Review Comment: https://git.openjdk.org/shenandoah/pull/440#discussion_r1653605043
More information about the shenandoah-dev
mailing list