RFR: JDK-8313319: [linux] mmap should use MAP_FIXED_NOREPLACE if available [v3]

Thomas Stuefe stuefe at openjdk.org
Wed Aug 23 09:13:13 UTC 2023


> os::attempt_reserve_memory_at() is used to map memory at a specific address that we fancy. It is not used to replace an existing mapping (hence we omit MAP_FIXED). 
> 
> But it may result in the kernel creating a mapping at a different address if our wish address is blocked; we then have to unmap again. That mmap-munmap cycle is unnecessary.
> 
> MAP_FIXED_NOREPLACE exists since Linux 4.17 and prevents that unnecessary cycle . We should use that if available. We need to tiptoe around a bit to deal with building on old machines/running on old kernels, though.

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 four additional commits since the last revision:

 - feedback david
 - Merge branch 'master' into JDK-8313319-MAP_FIXED_NOREPLACE
 - Merge branch 'openjdk:master' into JDK-8313319-MAP_FIXED_NOREPLACE
 - DK-8313319-MAP_FIXED_NOREPLACE

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/15170/files
  - new: https://git.openjdk.org/jdk/pull/15170/files/c2a2b760..2dfa2bf3

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=15170&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=15170&range=01-02

  Stats: 5843 lines in 330 files changed: 4199 ins; 662 del; 982 mod
  Patch: https://git.openjdk.org/jdk/pull/15170.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15170/head:pull/15170

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


More information about the hotspot-runtime-dev mailing list