On Fri, 25 Aug 2023 02:54:05 GMT, David Holmes <dhol...@openjdk.org> wrote:

> As `AlwaysPreTouch` is false by default, and we don't explicitly turn it on 
> for CI testing, what tests will actually be affected by this change? And for 
> applications that already enable `AlwaysPreTouch` (would they?) what impact 
> might this have e.g. on startup?

In the CR I mentioned the following was added as part of the fix done in 
[JDK-8293563](https://bugs.openjdk.org/browse/JDK-8293563) (which solves this 
same issue for the ZGC heap):

     public static String getAlwaysPretouchArg(boolean withCore) {
        // macosx-aarch64 has an issue where sometimes the java heap will not 
be dumped to the
        // core file. Using -XX:+AlwaysPreTouch fixes the problem.
        if (withCore && Platform.isOSX() && Platform.isAArch64()) {
            return "-XX:+AlwaysPreTouch";
        } else {
            return "-XX:-AlwaysPreTouch";
        }
    } 

So this bit of code will make sure that all the SA core file tests use 
AlwaysPreTouch on macosx-aarch64.

As for performance impact. I'm not certain and I'm also not to certain of the 
use case for AlwaysPretouch. As far as I can tell in was introduced by 
[JDK-6806090](https://bugs.openjdk.org/browse/JDK-6806090) and seems it was 
actually added to help with performance, although I'm not sure how.

The CDS archive tends to be small compared with the java heap, so I would think 
the relative impact would be small. Also unclear is how much of the archive is 
likely to get mapped in on startup anyway. Perhaps @iklam can add some insight.

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

PR Comment: https://git.openjdk.org/jdk/pull/15423#issuecomment-1692749815

Reply via email to