RFR: 8344232: [PPC64] secondary_super_cache does not scale well: C1 and interpreter
Martin Doerr
mdoerr at openjdk.org
Wed Dec 25 15:46:07 UTC 2024
PPC64 implementation of https://github.com/openjdk/jdk/commit/ead0116f2624e0e34529e47e4f509142d588b994. I have implemented a couple of rotate instructions.
C1 part is refactored such that the same code as before this patch is generated when `UseSecondarySupersTable` is disabled.
The first commit only implements `lookup_secondary_supers_table_var` and uses it in C2. The second commit makes the changes to use it in the interpreter, runtime and C1.
Performance difference can be observed when C2 is disabled (measured on Power10):
-XX:TieredStopAtLevel=1 -XX:-UseSecondarySupersTable:
SecondarySuperCacheHits.test avgt 15 13.028 ± 0.005 ns/op
SecondarySuperCacheInterContention.test avgt 15 417.746 ± 19.046 ns/op
SecondarySuperCacheInterContention.test:t1 avgt 15 417.852 ± 17.814 ns/op
SecondarySuperCacheInterContention.test:t2 avgt 15 417.641 ± 23.431 ns/op
SecondarySuperCacheIntraContention.test avgt 15 340.995 ± 5.620 ns/op
-XX:TieredStopAtLevel=1 -XX:+UseSecondarySupersTable:
SecondarySuperCacheHits.test avgt 15 14.539 ± 0.002 ns/op
SecondarySuperCacheInterContention.test avgt 15 25.667 ± 0.576 ns/op
SecondarySuperCacheInterContention.test:t1 avgt 15 25.709 ± 0.655 ns/op
SecondarySuperCacheInterContention.test:t2 avgt 15 25.626 ± 0.820 ns/op
SecondarySuperCacheIntraContention.test avgt 15 22.466 ± 1.554 ns/op
`SecondarySuperCacheHits` seems to be slightly slower, but `SecondarySuperCacheInterContention` and `SecondarySuperCacheIntraContention` are much faster (when C2 is disabled).
-------------
Commit messages:
- Change interpreter, runtime and C1 to use lookup_secondary_supers_table_var.
- 8344232: [PPC64] secondary_super_cache does not scale well: C1 and interpreter
Changes: https://git.openjdk.org/jdk/pull/22881/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=22881&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8344232
Stats: 311 lines in 7 files changed: 256 ins; 7 del; 48 mod
Patch: https://git.openjdk.org/jdk/pull/22881.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/22881/head:pull/22881
PR: https://git.openjdk.org/jdk/pull/22881
More information about the hotspot-dev
mailing list