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