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

Kelvin Nilsen kdnilsen at openjdk.org
Wed Feb 7 18:47:58 UTC 2024


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

>> src/hotspot/share/gc/shenandoah/shenandoahFreeSet.hpp line 36:
>> 
>>> 34: enum ShenandoahFreeSetPartitionId : uint8_t {
>>> 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.
>> 
>> Just want to make sure: "available to mutators" -- is this both for object allocation as well as for possible evacuation as part of the mutator LRB?
>
> For personal clarification: when the mutator LRB needs to evacuate an object, it uses the collector set.  Each mutator has three TLABS: one for mutator allocations, one for young-gen evacuations, and one for old-gen evacuations.  Let me know if you think we need more documentation around this.

(actually, the old-gen TLAB is not in single-generation Shenandoah, only in GenShen.)

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

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


More information about the shenandoah-dev mailing list