[lilliput-jdk17u:lilliput] RFR: 8310156: [Lilliput/JDK17] Specialize full-GC loops

Roman Kennke rkennke at openjdk.org
Mon Jun 19 14:56:44 UTC 2023


On Mon, 19 Jun 2023 11:27:22 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> We already ported most of [JDK-8305896](https://bugs.openjdk.org/browse/JDK-8305896) to Lilliput/JDK17. What's missing is the specialization of the full-GC loops so that performance on the legacy path is not impacted and performance on the alt-GC-forwarding path is minimized.
>> 
>> This corresponds to: https://github.com/openjdk/jdk/pull/13582/commits/6bbd29525b2864be37d96750ddc78f73d8eb0b65
>> 
>> However, the changes differ significantly:
>> - G1 serial compaction is different
>> - There is no humongous compaction in JDK17 G1
>> - Serial GC has seen some refactors of the relevant loops between JDK17 and JDK22
>> 
>> I see failing tests with Shenandoah, but they are pre-existing and should be investigated separately.
>> 
>> Testing:
>>  - [x] hotspot_gc
>>  - [x] hotspot_gc -UCOH
>>  - [x] tier1 -XX:+UseG1GC
>>  - [x] tier1 -XX:+UseSerialGC
>>  - [x] tier1 -XX:+UseShenandoahGC (not clean, but no regressions, either)
>>  - [x] tier1 -XX:+UseG1GC -UCOH
>>  - [x] tier1 -XX:+UseSerialGC -UCOH
>>  - [x] tier1 -XX:+UseShenandoahGC -UCOH (not clean, but no regressions, either)
>
> src/hotspot/share/gc/g1/g1FullGCAdjustTask.cpp line 111:
> 
>> 109:   marker->preserved_stack()->adjust_during_full_gc();
>> 110: 
>> 111:   G1AdjustClosure<ALT_FWD> adjust(collector());
> 
> Make a concession for code style, and name this local `_adjust`? Would save the renames everywhere else.

I would keep the _adjust -> adjust renaming changes as they are. I make this change once (or twice, again when actually upstreaming), but it's going to raise eyebrows whenever somebody reads this code.

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

PR Review Comment: https://git.openjdk.org/lilliput-jdk17u/pull/32#discussion_r1234172438


More information about the lilliput-dev mailing list