Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

jvm: drop UseCompressedOops JVM option #7705

Merged
merged 1 commit into from
Dec 3, 2024
Merged

jvm: drop UseCompressedOops JVM option #7705

merged 1 commit into from
Dec 3, 2024

Conversation

kofemann
Copy link
Member

Motivation:
Starting java7, the UseCompressedOops is dynamically controed by heap size.

$ java -Xmx32g -XX:+PrintFlagsFinal 2>/dev/null | grep UseCompressedOops
     bool UseCompressedOops                        = false                          {product lp64_product} {default}

$ java -Xmx28g -XX:+PrintFlagsFinal 2>/dev/null | grep UseCompressedOops
     bool UseCompressedOops                        = true                           {product lp64_product} {ergonomic}

The mismatch between UseCompressedOops endup with error:

OpenJDK 64-Bit Server VM warning: Max heap size too large for Compressed Oops
***** WARNING! INCORRECT SYSTEM CONFIGURATION DETECTED! *****
The system limit on number of memory mappings per process might be too low for the given
[gc] max Java heap size (40960M). Please adjust /proc/sys/vm/max_map_count to allow for at
[gc] least 73728 mappings (current limit is 65530). Continuing execution with the current

Modification:
drop UseCompressedOops JVM option from defaults.

Result:
correct behavior on JVMs with large heap

Acked-by: Lea Morschel
Target: master
Require-book: no
Require-notes: yes
(cherry picked from commit 59ea69f)

Motivation:
Starting java7, the UseCompressedOops is dynamically controed by heap
size.

```
$ java -Xmx32g -XX:+PrintFlagsFinal 2>/dev/null | grep UseCompressedOops
     bool UseCompressedOops                        = false                          {product lp64_product} {default}

$ java -Xmx28g -XX:+PrintFlagsFinal 2>/dev/null | grep UseCompressedOops
     bool UseCompressedOops                        = true                           {product lp64_product} {ergonomic}
```

The mismatch between UseCompressedOops endup with error:

```
OpenJDK 64-Bit Server VM warning: Max heap size too large for Compressed Oops
***** WARNING! INCORRECT SYSTEM CONFIGURATION DETECTED! *****
The system limit on number of memory mappings per process might be too low for the given
[gc] max Java heap size (40960M). Please adjust /proc/sys/vm/max_map_count to allow for at
[gc] least 73728 mappings (current limit is 65530). Continuing execution with the current
```

Modification:
drop UseCompressedOops JVM option from defaults.

Result:
correct behavior on JVMs with large heap

Acked-by: Lea Morschel
Target: master
Require-book: no
Require-notes: yes
(cherry picked from commit 59ea69f)
Signed-off-by: Tigran Mkrtchyan <[email protected]>
@khys95 khys95 merged commit b9e3025 into 9.2 Dec 3, 2024
2 checks passed
@khys95 khys95 deleted the rt10676-9.2 branch December 3, 2024 11:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants