RFR: 8332487: Regression in Crypto-AESGCMBench.encrypt (and others) after JDK-8328181
Jatin Bhateja
jbhateja at openjdk.org
Wed May 29 07:54:09 UTC 2024
Re-instantiating the ClearArray opcode check in match_rule_supported_vector, this caused performance regressions in some worklets in Renaissance BM since it prevented small sized instance initialization using quadword stores which showed better performance on non-AVX512 targets.
Our intent was to save code bloating due to long sequences of quadword store with large InitArrayShortSize value to prevent any side effects on in-lining decisions. Performance of an existing [Benchmark](https://github.com/openjdk/jdk/blob/master/test/micro/org/openjdk/bench/vm/compiler/ClearMemory.java) does not show much performance variation.
Baseline with -XX:InitArrayShortSize=100000000
Benchmark Mode Cnt Score Error Units
ClearMemory.testClearMemory16K thrpt 2 2695259.360 ops/s
ClearMemory.testClearMemory1K thrpt 2 48622330.474 ops/s
ClearMemory.testClearMemory1M thrpt 2 79546.779 ops/s
ClearMemory.testClearMemory24B thrpt 2 252740278.617 ops/s
ClearMemory.testClearMemory2K thrpt 2 24781443.547 ops/s
ClearMemory.testClearMemory32B thrpt 2 251588987.342 ops/s
ClearMemory.testClearMemory32K thrpt 2 1487427.378 ops/s
ClearMemory.testClearMemory40B thrpt 2 213856093.091 ops/s
ClearMemory.testClearMemory48B thrpt 2 193701317.101 ops/s
ClearMemory.testClearMemory4K thrpt 2 11961450.919 ops/s
ClearMemory.testClearMemory56B thrpt 2 169003238.018 ops/s
ClearMemory.testClearMemory8K thrpt 2 5871416.239 ops/s
ClearMemory.testClearMemory8M thrpt 2 10663.044 ops/s
With patch and -XX:InitArrayShortSize=100000000
Benchmark Mode Cnt Score Error Units
ClearMemory.testClearMemory16K thrpt 2 3147203.987 ops/s
ClearMemory.testClearMemory1K thrpt 2 48225184.981 ops/s
ClearMemory.testClearMemory1M thrpt 2 80016.400 ops/s
ClearMemory.testClearMemory24B thrpt 2 253904943.981 ops/s
ClearMemory.testClearMemory2K thrpt 2 24664594.490 ops/s
ClearMemory.testClearMemory32B thrpt 2 255507231.954 ops/s
ClearMemory.testClearMemory32K thrpt 2 1636220.531 ops/s
ClearMemory.testClearMemory40B thrpt 2 220718255.832 ops/s
ClearMemory.testClearMemory48B thrpt 2 196294911.715 ops/s
ClearMemory.testClearMemory4K thrpt 2 12182133.488 ops/s
ClearMemory.testClearMemory56B thrpt 2 168341797.370 ops/s
ClearMemory.testClearMemory8K thrpt 2 5952488.407 ops/s
ClearMemory.testClearMemory8M thrpt 2 10604.212 ops/s
java -jar renaissance-jmh-0.15.0-18-g65d596e-SNAPSHOT.jar -jvmArgs "-Xms10g -Xmx10g -Xlog:alloc* -XX:+UnlockDiagnosticVMOptions" -f 1 -i 5 -wi 2 -w 30 org.renaissance.jdk.streams.JmhMnemonics.run
Baseline:-
Benchmark Mode Cnt Score Error Units
JmhMnemonics.run ss 5 3202.478 ± 20.474 ms/op
With Patch:-
Benchmark Mode Cnt Score Error Units
JmhMnemonics.run ss 5 3241.956 ± 17.290 ms/op
Kindly review and share feedback.
Best Regards,
Jatin
-------------
Commit messages:
- 8332487: Regression in Crypto-AESGCMBench.encrypt (and others) after JDK-8328181
Changes: https://git.openjdk.org/jdk/pull/19447/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19447&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8332487
Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/19447.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/19447/head:pull/19447
PR: https://git.openjdk.org/jdk/pull/19447
More information about the hotspot-compiler-dev
mailing list