On Thu, 7 May 2026 08:31:58 GMT, Stefan Karlsson <[email protected]> wrote:

>> I've been investigating the regression reported in 
>> [JDK-8382041](https://bugs.openjdk.org/browse/JDK-8382041), which is caused 
>> by [JDK-8363996](https://bugs.openjdk.org/browse/JDK-8363996): "Obsolete 
>> UseCompressedClassPointers". While doing that I've found that calls to 
>> oopDesc::klass() bloat the code and that affects inilining, which cause 
>> performance regressions in the GC.
>> 
>> A localized fix for 
>> [JDK-8382041](https://bugs.openjdk.org/browse/JDK-8382041), is to 
>> deduplicate multiple calls to `klass()` into fewer calls. That fixes the 
>> imminent performance issue. However, while looking into `klass()` I see that 
>> there's opportunity to somewhat simplify the implementation, and that seems 
>> to have almost the same level of performance improvements. I propose that we 
>> make that change because it both makes the code smaller, cleaner, and faster.
>> 
>> The performance was measured with the 
>> org.openjdk.bench.vm.gc.systemgc.AllLive.gc microbenchmark + UseZGC.
>> 
>> I will run tier1-tier3
>>  
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Stefan Karlsson has updated the pull request incrementally with 22 additional 
> commits since the last revision:
> 
>  - Merge remote-tracking branch 'upstream/master' into 
> 8383912_simplify_oopDesc_klass
>  - 8383910: klass_or_null_acquire asserts on null when using compact object 
> headers
>    
>    Reviewed-by: jsjolen, mdoerr, shade, tschatzl
>  - 8379630: Add JMH benchmark to measure the overhead of using captured call 
> state
>    
>    Reviewed-by: pminborg, jvernee, liach
>  - 8383851: TypeInstPtr::get_const_boxed_value is unused since JDK-8149813
>    
>    Reviewed-by: aseoane, thartmann
>  - 8384042: [BACKOUT] Incorrect handling of Hawaii_Aleutian metazone
>    
>    Reviewed-by: jlu, iris
>  - 8383825: Incorrect handling of Hawaii_Aleutian metazone
>    
>    Reviewed-by: jlu, iris
>  - 8383810: Shenandoah: Simplify native CAS barriers
>    
>    Reviewed-by: rkennke, xpeng, kdnilsen
>  - 8382871: Completion failure during diagnostic formatting
>    
>    Reviewed-by: vromero
>  - 8379667: C2: Deep recursion with cmovP_regNode::bottom_type
>    
>    Reviewed-by: aseoane, dlong
>  - 8383850: Move TestLargeUTF8Length.java to resourcehogs
>    
>    Reviewed-by: aboldtch, jsjolen, dholmes, phubner
>  - ... and 12 more: https://git.openjdk.org/jdk/compare/f32d4eb9...ecbed768

Looks fine after merge. I wonder what is off with your Windows GHA builds. 
Looks environmental, but persisent?

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

Marked as reviewed by shade (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/31055#pullrequestreview-4242581152

Reply via email to