RFR: JDK-8261894: Remove support for UseSHM [v2]
Thomas Stuefe
stuefe at openjdk.org
Wed Oct 4 08:07:43 UTC 2023
> We decided to ditch the SystemV-based large-page handling code in Linux a while ago. For history and details, please see JBS issue and the accompanying [CSR](https://bugs.openjdk.org/browse/JDK-8310841).
>
> This patch
>
> 1) removes the support for `-XX:+UseSHM` and all its backing code. It obsoletes `UseSHM`.
>
> 2) `UseSHM` had just been the negation of `UseHugeTLBFS` (in hindsight, a single mode switch would have been better). The POSIX-mmap-based implementation behind `UseHugeTLBFS` remains the sole implementation of static large pages in the JVM. The flag `UseHugeTLBFS` itself is not needed anymore since there is nothing to distinguish it from. Therefore I removed that flag, too.
>
> 3) `UseLargePages` and `UseTransparentHugePages` are unaffected. Their meaning remains the same:
> `UseLargePages` => using static hugepages
> `UseLargePages` + `UseTransparentHugePages` => using THPs
> `UseTransparentHugePages` => using THPs, enables also `UseLargePages`
>
> This allows for many code removals and simplifications. We can ditch the SystemV large page setup and management, its sanity tests, its regression tests, and associated documentation. We can also lose some of the tests, code, and documentation surrounding HugeTLBFS.
>
> Testing: I manually ran many tests with many different huge page settings on Linux x64. GHAs are green (one remaining x86 error is unrelated).
>
> Note that I will be out on vacation in September and may not respond to reviews in a timely fashion.
Thomas Stuefe has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision:
- Merge branch 'openjdk:master' into JDK-8261894-Obsolete-the-UseSHM-and-UseHugeTLBFS-flags
- test
- JDK-8261894-Obsolete-the-UseSHM-and-UseHugeTLBFS-flags
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/14970/files
- new: https://git.openjdk.org/jdk/pull/14970/files/de8f8813..f57cf1be
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=14970&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=14970&range=00-01
Stats: 114110 lines in 3264 files changed: 49461 ins; 23735 del; 40914 mod
Patch: https://git.openjdk.org/jdk/pull/14970.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/14970/head:pull/14970
PR: https://git.openjdk.org/jdk/pull/14970
More information about the hotspot-runtime-dev
mailing list