RFR: 8331126: [s390x] secondary_super_cache does not scale well [v6]
Martin Doerr
mdoerr at openjdk.org
Wed Jun 26 19:53:13 UTC 2024
On Tue, 25 Jun 2024 14:19:44 GMT, Amit Kumar <amitkumar at openjdk.org> wrote:
>> s390x Port for [JDK-8180450](https://bugs.openjdk.org/browse/JDK-8180450)
>>
>> I ran `tier1` test with `-XX:+UseSecondarySupersTable -XX:+VerifySecondarySupers -XX:+StressSecondarySupers` in fastdebug vm and didn't see any new failure appearing; Except one I have mentioned [here](https://github.com/openjdk/jdk/pull/19368#issuecomment-2154983693); But this is reproducible on every other architecture with these flags.
>>
>>
>> Without Patch:
>>
>> SecondarySuperCacheHits.test avgt 15 0.929 ± 0.010 ns/op
>>
>> SecondarySuperCacheInterContention.test avgt 15 1.413 ± 0.007 ns/op
>> SecondarySuperCacheInterContention.test:t1 avgt 15 1.415 ± 0.016 ns/op
>> SecondarySuperCacheInterContention.test:t2 avgt 15 1.410 ± 0.017 ns/op
>>
>> Benchmark Mode Cnt Score Error Units
>> SecondarySupersLookup.testNegative00 avgt 15 1.806 ± 0.325 ns/op
>> SecondarySupersLookup.testNegative01 avgt 15 2.364 ± 0.236 ns/op
>> SecondarySupersLookup.testNegative02 avgt 15 2.903 ± 0.215 ns/op
>> SecondarySupersLookup.testNegative03 avgt 15 3.417 ± 0.199 ns/op
>> SecondarySupersLookup.testNegative04 avgt 15 3.758 ± 0.102 ns/op
>> SecondarySupersLookup.testNegative05 avgt 15 4.352 ± 0.123 ns/op
>> SecondarySupersLookup.testNegative06 avgt 15 4.800 ± 0.099 ns/op
>> SecondarySupersLookup.testNegative07 avgt 15 5.365 ± 0.060 ns/op
>> SecondarySupersLookup.testNegative08 avgt 15 6.316 ± 0.092 ns/op
>> SecondarySupersLookup.testNegative09 avgt 15 6.669 ± 0.164 ns/op
>> SecondarySupersLookup.testNegative10 avgt 15 7.041 ± 0.164 ns/op
>> SecondarySupersLookup.testNegative16 avgt 15 9.336 ± 0.185 ns/op
>> SecondarySupersLookup.testNegative20 avgt 15 11.373 ± 0.029 ns/op
>> SecondarySupersLookup.testNegative30 avgt 15 15.236 ± 0.051 ns/op
>> SecondarySupersLookup.testNegative32 avgt 15 16.031 ± 0.091 ns/op
>> SecondarySupersLookup.testNegative40 avgt 15 19.197 ± 0.279 ns/op
>> SecondarySupersLookup.testNegative50 avgt 15 23.804 ± 2.387 ns/op
>> SecondarySupersLookup.testNegative55 avgt 15 25.610 ± 1.155 ns/op
>> SecondarySupersLookup.testNegative56 avgt 15 26.128 ± 2.203 ns/op
>> SecondarySupersLookup.testNegative57 avgt 15 26.126 ± 0.881 ns/op
>> SecondarySupersLookup.testNegative58 avgt 15 26.314 ± 0.521 ns/op
>> SecondarySupersLookup.testNegative59 avgt 15 26.750 ± 0.837 ns/op
>> SecondarySupersLookup.testNegative60 avgt 15 27.118 ± 0.557 ...
>
> Amit Kumar has updated the pull request incrementally with one additional commit since the last revision:
>
> add2reg -> z_la
src/hotspot/cpu/s390/macroAssembler_s390.cpp line 3452:
> 3450: z_lgr(Z_ARG4, r_result);
> 3451: const char* msg = "mismatch";
> 3452: load_const_optimized(Z_ARG5, (address)msg);
Did you test this? It breaks when you have a register collision (see my assert_different_registers on PPC64). You can test it by removing the `z_bre` above and checking if the arguments are correct.
src/hotspot/cpu/s390/stubGenerator_s390.cpp line 720:
> 718: r_result = Z_R11;
> 719: address start = __ pc();
> 720:
Extra empty line.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/19544#discussion_r1655435498
PR Review Comment: https://git.openjdk.org/jdk/pull/19544#discussion_r1655436383
More information about the hotspot-dev
mailing list