RFR: 8344232: [PPC64] secondary_super_cache does not scale well: C1 and interpreter [v2]
Martin Doerr
mdoerr at openjdk.org
Wed Jan 22 21:52:02 UTC 2025
> PPC64 implementation of https://github.com/openjdk/jdk/commit/ead0116f2624e0e34529e47e4f509142d588b994. I have implemented a couple of rotate instructions.
> 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.
> C1 part is refactored such that the same code as before this patch is generated when `UseSecondarySupersTable` is disabled. Some stubs are modified to provide one more temp register.
>
> 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).
Martin Doerr has updated the pull request incrementally with one additional commit since the last revision:
Remove early return from check_klass_subtype_slow_path.
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/22881/files
- new: https://git.openjdk.org/jdk/pull/22881/files/f7c1b79c..37789b38
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=22881&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=22881&range=00-01
Stats: 13 lines in 2 files changed: 5 ins; 4 del; 4 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