RFR: 8331126: [s390x] secondary_super_cache does not scale well

Amit Kumar amitkumar at openjdk.org
Sat Jun 15 13:12:12 UTC 2024


On Tue, 4 Jun 2024 15:19:51 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  ns/op
> SecondarySupersLookup.testNegative61  avgt   15  27.763 ± 1.628  ns...

src/hotspot/cpu/s390/macroAssembler_s390.cpp line 3417:

> 3415:     // r_result should have either 0 or 1 value
> 3416:     NearLabel check_0, check_1;
> 3417: 

Suggestion:

    // r_result should have either 0 or 1 value

src/hotspot/cpu/s390/macroAssembler_s390.cpp line 3420:

> 3418:     // check for 0
> 3419:     z_chi(r_result, 0);
> 3420:     asm_assert(bcondNotLow, "r_result >= 0", 33);

Suggestion:

    asm_assert(bcondNotLow, "r_result should be equal or greater than 0", 33);

src/hotspot/cpu/s390/macroAssembler_s390.cpp line 3424:

> 3422:     // check for 1
> 3423:     z_chi(r_result, 1);
> 3424:     asm_assert(bcondNotHigh, "r_result <= 1", 33);

Suggestion:

    asm_assert(bcondNotHigh, "r_result should be equal or less than 1", 33);

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/19544#discussion_r1641153358
PR Review Comment: https://git.openjdk.org/jdk/pull/19544#discussion_r1641154603
PR Review Comment: https://git.openjdk.org/jdk/pull/19544#discussion_r1641155110


More information about the hotspot-dev mailing list