RFR: 8364212: Shenandoah: Rework archived objects loading [v5]

Kelvin Nilsen kdnilsen at openjdk.org
Sun Aug 3 22:42:55 UTC 2025


On Fri, 1 Aug 2025 19:08:29 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp line 1282:
>> 
>>> 1280:       ShenandoahHeapRegion* r = _heap->get_region(i);
>>> 1281:       if (r->free() < PLAB::min_size() * HeapWordSize) {
>>> 1282:         _partitions.retire_from_partition(ShenandoahFreeSetPartitionId::Mutator, i, r->used());
>> 
>> Should we accrue waste here when these regions are retired? Or is waste only _humongous_ waste?
>
> I believe yes, we only report the _humongous_ waste in ShenandoahAllocRequest. The rest of the waste is accrued right in `retire_from_partition`: https://github.com/openjdk/jdk/blob/8e921aee5abb20c240b45cb75b06fb1f316d8a1f/src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp#L373-L376

The "theory" is that if the remainder of this region is available for allocations, then we should not count the remnant as humongous_waste.  Is there any reason why we could not allow additional allocations within the CDS regions?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26510#discussion_r2250161656


More information about the hotspot-gc-dev mailing list