RFR: 8314550: [macosx-aarch64] serviceability/sa/TestJmapCore.java fails with "sun.jvm.hotspot.debugger.UnmappedAddressException: 801000800"
Ioi Lam
iklam at openjdk.org
Fri Aug 25 05:23:09 UTC 2023
On Thu, 24 Aug 2023 23:31:56 GMT, Chris Plummer <cjplummer at openjdk.org> wrote:
> On some macosx-aarch64 systems, not all mapped pages are dumped to the core file. This first turned up with [JDK-8293563](https://bugs.openjdk.org/browse/JDK-8293563) where large parts of the ZGC heap would not be in the core file, leading to various SA address errors. For JDK-8293563 the issue was addressed by having the core file test always use `-XX:+AlwaysPreTouch` on macosx-aarch64. This seemed to force the ZGC pages to always end up in the core file.
>
> A similar issue has been noticed with mapped in pages of the CDS archive. We are seeing cases where SA references to addresses that are clearly in the CDS archive (based on info in the hs_err file) are failing to be read from the core file by SA. This problem has turned up a number of times during CI testing, but I have yet to be able to reproduce it myself. This PR is an attempt to address this testing issue by having the CDS archive also pretouch all mapped in pages when `-XX:+AlwaysPreTouch` is used.
>
> Tested with tier1 and tier3 and also ran the test about 5,000 times with and without the fix. It never reproduced for either. Hopefully the problem is gone with this fix, but it may take a few months of CI testing before we can be confident it is fixed.
Looks good to me.
The size of the CDS archive is usually much smaller than the committed heap size.
The [GC tuning docs says](https://docs.oracle.com/en/java/javase/11/gctuning/garbage-first-garbage-collector-tuning.html#GUID-0770AB01-E334-4E23-B307-FD2114B16E0E):
> You can use -XX:+AlwaysPreTouch to move the operating system work to back virtual memory with physical memory to VM startup time. Both of these measures can be particularly desirable in order to make pause-times more consistent.
So committing all the CDS regions to physical memory at VM start-up would be what the user expects when `-XX:+AlwaysPreTouch` is specified.
-------------
Marked as reviewed by iklam (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/15423#pullrequestreview-1594875750
More information about the hotspot-runtime-dev
mailing list