On Thu, 24 Aug 2023 23:31:56 GMT, Chris Plummer <cjplum...@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