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

Aleksey Shipilev shade at openjdk.org
Fri Aug 1 19:11:02 UTC 2025


On Fri, 1 Aug 2025 18:39:28 GMT, William Kemper <wkemper at openjdk.org> wrote:

>> Aleksey Shipilev has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains eight additional commits since the last revision:
>> 
>>  - Merge branch 'master' into JDK-8364212-shenandoah-archived-objs
>>  - Merge branch 'master' into JDK-8364212-shenandoah-archived-objs
>>  - Do not fill out the entire regions
>>  - Merge branch 'master' into JDK-8364212-shenandoah-archived-objs
>>  - A bit more verification
>>  - Fix
>>  - Fix
>>  - Regular CDS
>
> 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

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

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


More information about the shenandoah-dev mailing list