RFR: 8330076: [NMT] add/make a mandatory MEMFLAGS argument to family of os::reserve/commit/uncommit memory API

Afshin Zafari azafari at openjdk.org
Thu Apr 11 15:59:50 UTC 2024


`MEMFLAGS flag` is used to hold/show the type of the memory regions in NMT. Each call of NMT API requires a search through the list of memory regions.
The Hotspot code reserves/commits/uncommits memory regions and later calls explicitly NMT API with a specific memory type (e.g., `mtGC`, `mtJavaHeap`) for that region.  Therefore, there are two search in the list of regions per reserve/commit/uncommit operations, one for the operation and another for setting the type of the region.  
When the memory type is passed in during reserve/commit/uncommit operations, NMT can use it and avoid the extra search for setting the memory type.

Tests: tiers1-5 passed on linux-x64, macosx-aarch64 and windows-x64 for debug and non-debug builds.

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

Commit messages:
 - 8330076: [NMT] add/make a mandatory MEMFLAGS argument to family of os::reserve/commit/uncommit memory API
 - some missed changes
 - reserve memory functions are also updated to have mandatory MEMFLAGS.
 - uncommit has also mandatory MEMFLAGS arg
 - virtual memory commit has mandatory MEMFLAGS arg.

Changes: https://git.openjdk.org/jdk/pull/18745/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=18745&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8330076
  Stats: 299 lines in 59 files changed: 13 ins; 39 del; 247 mod
  Patch: https://git.openjdk.org/jdk/pull/18745.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18745/head:pull/18745

PR: https://git.openjdk.org/jdk/pull/18745


More information about the shenandoah-dev mailing list