RFR: 8319867: GenShen: Make old regions parseable at end of concurrent cycles

Y. Srinivas Ramakrishna ysr at openjdk.org
Sat Nov 11 00:22:33 UTC 2023


On Sat, 11 Nov 2023 00:07:26 GMT, Y. Srinivas Ramakrishna <ysr at openjdk.org> wrote:

>> src/hotspot/share/gc/shenandoah/shenandoahOldGeneration.cpp line 432:
>> 
>>> 430:       break;
>>> 431:     case WAITING_FOR_BOOTSTRAP:
>>> 432:       // GC cancellation can send us back to IDLE from any state.
>> 
>> Since there isn't now a state named "IDLE", it might be less confusing to just say "FILLING" or "WAITING_FOR_BOOTSTRAP"? Should we assert here that there are no `coalesce_and_fill_candidates` or is that implied by perhaps stronger checks below? (Wouldn't hurt even if so.)
>
> assert(_state != BOOTSTRAP && _state != WAITING_FOR_BOOTSTRAP, "Illegal transition");

I am thinking that the most parsimonious way of covering all bases is by associating a pre-condition with entering each state and a post-condition with exiting each state, and verifying those conditions in the transition validation methods. But may be that can be done as a separate PR if it makes sense.

-------------

PR Review Comment: https://git.openjdk.org/shenandoah/pull/355#discussion_r1390052540


More information about the shenandoah-dev mailing list