RFR: 8281181: Do not use CPU Shares to compute active processor count
Ioi Lam
iklam at openjdk.java.net
Wed Mar 2 21:10:24 UTC 2022
This is a simple change (Linux-only) that removes the consideration of Cgroups CPU Shares from the active process count calculation. Of note, this fixes CPU underutilization when Java is executed by Kubernetes without CPU resources limits.
Please see the CSR [JDK-8281571](https://bugs.openjdk.java.net/browse/JDK-8281571) for a detailed discussion of the reasons to make this change.
To err on the side of caution, we added a temporary (and deprecated) VM flag `-XX:+UseContainerCpuShares` to enable the old behavior. We believe the old behavior is wrong and unnecessary. The plan is to remove the old behavior in JDK 20.
The associated flag, `PreferContainerQuotaForCPUCount` is also deprecated. Both flags will be obsoleted in JDK 20.
Testing with tiers 1-4, as well as container tests in tier5.
-------------
Commit messages:
- 8281181: Do not use CPU Shares to compute active processor count
Changes: https://git.openjdk.java.net/jdk/pull/7666/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=7666&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8281181
Stats: 50 lines in 5 files changed: 32 ins; 0 del; 18 mod
Patch: https://git.openjdk.java.net/jdk/pull/7666.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/7666/head:pull/7666
PR: https://git.openjdk.java.net/jdk/pull/7666
More information about the hotspot-dev
mailing list