RFR: 8354145: G1: UseCompressedOops boundary is calculated on maximum heap region size instead of maxiumum ergonomic heap region size [v4]

Albert Mingkun Yang ayang at openjdk.org
Tue Apr 29 14:00:46 UTC 2025


On Tue, 15 Apr 2025 03:31:48 GMT, Tongbao Zhang <duke at openjdk.org> wrote:

>> After [JDK-8275056](https://bugs.openjdk.org/browse/JDK-8275056), The max heap region size became 512M, and the calculation of CompressedOops based on the max_heap_size - max_heap_region_size.
>> So before this patch, the CompressedOops will turn on below 32G - 32m, After this patch is 32G -512m.
>> 
>> When our Apps migrating from JDK11 to JDK21, the heap size parameters(Xmx32736m) will turn off the CompressedOops.
>> 
>> Since the current max ergonomics size is still 32m, We hoped that the original behavior will not be changed if HeapRegionSize is not explicitly set.
>> 
>> before this patch:
>> 
>> ./build/linux-x86_64-server-release/images/jdk/bin/java -Xmx32736m -XX:+PrintFlagsFinal -version | grep CompressedOops
>>      bool UseCompressedOops                        = false                          {product lp64_product} {default}
>> openjdk version "25-internal" 2025-09-16
>> OpenJDK Runtime Environment (build 25-internal-adhoc.root.jdk)
>> OpenJDK 64-Bit Server VM (build 25-internal-adhoc.root.jdk, mixed mode, sharing)
>> 
>> 
>> after this patch:
>> 
>> ./build/linux-x86_64-server-release/images/jdk/bin/java -Xmx32736m -XX:+PrintFlagsFinal -version | grep CompressedOops
>>      bool UseCompressedOops                        = true                           {product lp64_product} {ergonomic}
>> openjdk version "25-internal" 2025-09-16
>> OpenJDK Runtime Environment (build 25-internal-adhoc.root.jdk)
>> OpenJDK 64-Bit Server VM (build 25-internal-adhoc.root.jdk, mixed mode, sharing)
>
> Tongbao Zhang has updated the pull request incrementally with one additional commit since the last revision:
> 
>   typo

This PR is good by itself.

Maybe in a followup, one can explore the possibility of adjusting (e.g. align-down instead) max-heap-size somewhere in order to avoid the current circular dependency.

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

Marked as reviewed by ayang (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/24541#pullrequestreview-2803711479


More information about the hotspot-gc-dev mailing list