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