RFR: 8072070: Improve interpreter stack banging [v2]

Jie Fu jiefu at openjdk.java.net
Mon Feb 7 12:43:02 UTC 2022


On Mon, 7 Feb 2022 07:27:57 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>>> since you this PR touches stackoverflow.hpp, Could you also take a look at this? https://github.com/openjdk/jdk/blob/master/src/hotspot/share/runtime/stackOverflow.cpp#L66
>>> 
>>> we actually get the page size from os. why do we need alignment = 4k?
>> 
>> Look here: https://github.com/openjdk/jdk/blob/48523b090886f7b24ed4009f0c150efaa6f7b056/src/hotspot/share/runtime/stackOverflow.cpp#L42-L45 -- the `StackYellowPages`, `StackRedPages`, `StackShadowPages` are defined in as 4K pages. It should probably be called `unit`, not `alignment`. I'd like to avoid scope creep for this PR, so that's for another day.
>
>> > since you this PR touches stackoverflow.hpp, Could you also take a look at this? https://github.com/openjdk/jdk/blob/master/src/hotspot/share/runtime/stackOverflow.cpp#L66
>> > we actually get the page size from os. why do we need alignment = 4k?
>> 
>> Look here:
>> 
>> https://github.com/openjdk/jdk/blob/48523b090886f7b24ed4009f0c150efaa6f7b056/src/hotspot/share/runtime/stackOverflow.cpp#L42-L45
>> -- the `StackYellowPages`, `StackRedPages`, `StackShadowPages` are defined in as 4K pages. It should probably be called `unit`, not `alignment`. I'd like to avoid scope creep for this PR, so that's for another day.
> 
> Done in #7362.

Hi @shipilev ,

Did you test the perf improvement base on the latest jdk?
I tried to test SPECjvm2008's `compiler.compiler` with jdk19, but failed with

  Benchmark:   compiler.compiler
  Run mode:    timed run
  Test type:   multi
  Threads:     8
  Warmup:      120s
  Iterations:  1
  Run length:  240s
Error in setup of Benchmark.
spec.harness.StopBenchmarkException: Error invoking bmSetupBenchmarkMethod
        at spec.harness.ProgramRunner.invokeBmSetupBenchmark(ProgramRunner.java:185)
        at spec.harness.ProgramRunner.runBenchmark(ProgramRunner.java:301)
        at spec.harness.ProgramRunner.run(ProgramRunner.java:98)
Caused by: java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119)
        at java.base/java.lang.reflect.Method.invoke(Method.java:577)
        at spec.harness.ProgramRunner.invokeBmSetupBenchmark(ProgramRunner.java:183)
        ... 2 more
Caused by: java.lang.NoClassDefFoundError: com/sun/tools/javac/util/JavacFileManager
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1013)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
        at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
        at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        at spec.benchmarks.compiler.MainBase.preSetupBenchmark(MainBase.java:38)
        at spec.benchmarks.compiler.compiler.Main.setupBenchmark(Main.java:38)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        ... 4 more
Caused by: java.lang.ClassNotFoundException: com.sun.tools.javac.util.JavacFileManager
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 16 more

Warmup (120s) begins: Mon Feb 07 20:35:40 CST 2022
Warmup (120s) ends:   Mon Feb 07 20:35:40 CST 2022
Warmup (120s) result:  **NOT VALID**


Am I missed something?
Thanks.

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

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


More information about the hotspot-dev mailing list