RFR: 8272807: Permit use of memory concurrent with pretouch

Kim Barrett kbarrett at openjdk.java.net
Mon Aug 23 11:43:40 UTC 2021


Please review this change to os::pretouch_memory to permit use of the memory
concurrently with the pretouch operation.  This is accomplished by using an
atomic add of zero as the operation for touching the memory, ensuring the
virtual location is backed by physical memory while not changing any values
being read or written by the application.

While I was there, fixed some other lurking issues in os::pretouch_memory.
There was a potential overflow in the iteration that has been fixed.  And if
the range arguments weren't page aligned then the last page might not get
touched.  The latter was even mentioned in the function's description.  Both
of those have been fixed by careful alignment and some extra checks.  The
resulting code is a little more complicated, but more robust and complete.

This change doesn't make use of the new capability; I have some other
changes in development to do that.

Testing:
mach5 tier1-3.

I've been using this change while developing uses of the new capability.
Performance testing hasn't found any regressions related to this change.

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

Commit messages:
 - improve pretouch_memory

Changes: https://git.openjdk.java.net/jdk/pull/5215/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5215&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8272807
  Stats: 36 lines in 2 files changed: 26 ins; 0 del; 10 mod
  Patch: https://git.openjdk.java.net/jdk/pull/5215.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/5215/head:pull/5215

PR: https://git.openjdk.java.net/jdk/pull/5215


More information about the hotspot-runtime-dev mailing list