RFR: 8324649: Shenandoah: refactor implementation of free set [v6]

Y. Srinivas Ramakrishna ysr at openjdk.org
Fri Feb 9 09:16:06 UTC 2024


On Wed, 7 Feb 2024 18:30:48 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

>> src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp line 37:
>> 
>>> 35:   NotFree,                      // Region has been retired and is not in any free set: there is no available memory.
>>> 36:   Mutator,                      // Region is in the Mutator free set: available memory is available to mutators.
>>> 37:   Collector,                    // Region is in the Collector free set: available memory is reserved for evacuations.
>> 
>> When mutators evacuate the target of an LRB, do they use `Mutator` or `Collector`. I assume the former? In that case, I'd say for Collector: `available memory is reserved for collector threads for evacuation`.
>
> actually, the collector reserve is for all evacuation, whether performed by collector worker threads or by mutator threads doing LRB handling.

Thanks, makes sense! Might be worthwhile if possible to mention this here somewhere may be.

For example, may be:

    Mutator,    // available for object allocation by mutator
    Collector,  // available for evacuations by collector (including mutator LRB)

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

PR Review Comment: https://git.openjdk.org/jdk/pull/17561#discussion_r1484052864


More information about the shenandoah-dev mailing list