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