RFR: 8332587: RISC-V: secondary_super_cache does not scale well [v3]

Gui Cao gcao at openjdk.org
Tue Jun 4 07:57:14 UTC 2024


On Tue, 4 Jun 2024 02:11:35 GMT, Gui Cao <gcao at openjdk.org> wrote:

>> Implementation of subtype checking [JDK-8180450](https://bugs.openjdk.org/browse/JDK-8180450) for linux-riscv64.
>> This optimization depends on availability of the Zbb extension which has the cpop instruction.
>> 
>> ### Correctness testing:
>> 
>> - [x]  Run tier1-3, hotspot:tier4 tests on SOPHON SG2042 (release)
>> - [x] Run tier1-3 tests with -XX:+UseRVV on qemu 8.1.0 (fastdebug)
>> - [x] Run all of tier1 with `-XX:+VerifySecondarySupers`
>> 
>> ### JMH tested on Banana Pi BPI-F3 board (has Zbb) and Enable UseZbb, Not Enable UseZba, UseZbs
>> Original:
>> 
>> Benchmark                             Mode  Cnt    Score   Error  Units
>> SecondarySuperCacheHits.test  avgt   15  11.375 ± 0.071  ns/op
>> SecondarySuperCacheInterContention.test     avgt   15  646.087 ± 32.587  ns/op
>> SecondarySuperCacheInterContention.test:t1  avgt   15  600.090 ± 83.779  ns/op
>> SecondarySuperCacheInterContention.test:t2  avgt   15  692.084 ± 73.218  ns/op
>> SecondarySupersLookup.testNegative00  avgt   15   16.420 ± 0.239  ns/op
>> SecondarySupersLookup.testNegative01  avgt   15   18.307 ± 0.260  ns/op
>> SecondarySupersLookup.testNegative02  avgt   15   21.695 ± 0.458  ns/op
>> SecondarySupersLookup.testNegative03  avgt   15   24.855 ± 0.664  ns/op
>> SecondarySupersLookup.testNegative04  avgt   15   27.305 ± 0.522  ns/op
>> SecondarySupersLookup.testNegative05  avgt   15   29.719 ± 0.385  ns/op
>> SecondarySupersLookup.testNegative06  avgt   15   32.231 ± 0.498  ns/op
>> SecondarySupersLookup.testNegative07  avgt   15   33.747 ± 0.603  ns/op
>> SecondarySupersLookup.testNegative08  avgt   15   35.856 ± 0.629  ns/op
>> SecondarySupersLookup.testNegative09  avgt   15   37.077 ± 0.546  ns/op
>> SecondarySupersLookup.testNegative10  avgt   15   39.408 ± 0.465  ns/op
>> SecondarySupersLookup.testNegative16  avgt   15   51.041 ± 0.547  ns/op
>> SecondarySupersLookup.testNegative20  avgt   15   58.722 ± 0.922  ns/op
>> SecondarySupersLookup.testNegative30  avgt   15   77.310 ± 0.654  ns/op
>> SecondarySupersLookup.testNegative32  avgt   15   81.116 ± 0.854  ns/op
>> SecondarySupersLookup.testNegative40  avgt   15   96.311 ± 0.840  ns/op
>> SecondarySupersLookup.testNegative50  avgt   15  115.427 ± 0.838  ns/op
>> SecondarySupersLookup.testNegative55  avgt   15  124.371 ± 1.076  ns/op
>> SecondarySupersLookup.testNegative56  avgt   15  126.796 ± 0.916  ns/op
>> SecondarySupersLookup.testNegative57  avgt   15  127.952 ± 1.202  ns/op
>> SecondarySupersLookup.testNegative58  avgt   15  131.956 ± 4.515  ns/op
>> Seco...
>
> Gui Cao has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fix Code format

JMH tested on Banana Pi BPI-F3 board (has Zba,Zbb,Zbs) and Enable UseZba, UseZbb, UseZbs
Original(not with patch):

Benchmark                             Mode  Cnt    Score   Error  Units
SecondarySupersLookup.testNegative00  avgt   15   16.405 ± 0.221  ns/op                                                                SecondarySupersLookup.testNegative01  avgt   15   18.276 ± 0.251  ns/op
SecondarySupersLookup.testNegative02  avgt   15   21.519 ± 0.314  ns/op
SecondarySupersLookup.testNegative03  avgt   15   24.434 ± 0.370  ns/op                                                                SecondarySupersLookup.testNegative04  avgt   15   27.246 ± 0.441  ns/op                                                                SecondarySupersLookup.testNegative05  avgt   15   29.652 ± 0.397  ns/op
SecondarySupersLookup.testNegative06  avgt   15   32.049 ± 0.533  ns/op
SecondarySupersLookup.testNegative07  avgt   15   33.568 ± 0.501  ns/op
SecondarySupersLookup.testNegative08  avgt   15   35.593 ± 0.606  ns/op
SecondarySupersLookup.testNegative09  avgt   15   37.220 ± 0.407  ns/op
SecondarySupersLookup.testNegative10  avgt   15   39.522 ± 0.511  ns/op
SecondarySupersLookup.testNegative16  avgt   15   51.146 ± 0.667  ns/op
SecondarySupersLookup.testNegative20  avgt   15   58.404 ± 0.654  ns/op
SecondarySupersLookup.testNegative30  avgt   15   77.190 ± 0.796  ns/op
SecondarySupersLookup.testNegative32  avgt   15   81.144 ± 0.761  ns/op
SecondarySupersLookup.testNegative40  avgt   15   96.018 ± 0.733  ns/op
SecondarySupersLookup.testNegative50  avgt   15  115.170 ± 0.876  ns/op
SecondarySupersLookup.testNegative55  avgt   15  125.827 ± 4.322  ns/op
SecondarySupersLookup.testNegative56  avgt   15  126.151 ± 0.979  ns/op
SecondarySupersLookup.testNegative57  avgt   15  129.638 ± 4.326  ns/op
SecondarySupersLookup.testNegative58  avgt   15  131.960 ± 4.584  ns/op
SecondarySupersLookup.testNegative59  avgt   15  131.403 ± 1.051  ns/op
SecondarySupersLookup.testNegative60  avgt   15  133.660 ± 0.888  ns/op
SecondarySupersLookup.testNegative61  avgt   15  137.293 ± 4.852  ns/op
SecondarySupersLookup.testNegative62  avgt   15  137.476 ± 1.081  ns/op
SecondarySupersLookup.testNegative63  avgt   15  139.028 ± 1.026  ns/op
SecondarySupersLookup.testNegative64  avgt   15  143.545 ± 5.011  ns/op
SecondarySupersLookup.testPositive01  avgt   15   10.734 ± 0.156  ns/op
SecondarySupersLookup.testPositive02  avgt   15   10.727 ± 0.145  ns/op
SecondarySupersLookup.testPositive03  avgt   15   10.729 ± 0.149  ns/op
SecondarySupersLookup.testPositive04  avgt   15   10.724 ± 0.140  ns/op
SecondarySupersLookup.testPositive05  avgt   15   10.730 ± 0.152  ns/op
SecondarySupersLookup.testPositive06  avgt   15   10.726 ± 0.143  ns/op
SecondarySupersLookup.testPositive07  avgt   15   10.731 ± 0.151  ns/op
SecondarySupersLookup.testPositive08  avgt   15   10.735 ± 0.158  ns/op
SecondarySupersLookup.testPositive09  avgt   15   10.731 ± 0.152  ns/op
SecondarySupersLookup.testPositive10  avgt   15   10.728 ± 0.147  ns/op
SecondarySupersLookup.testPositive16  avgt   15   10.732 ± 0.153  ns/op
SecondarySupersLookup.testPositive20  avgt   15   10.727 ± 0.145  ns/op
SecondarySupersLookup.testPositive30  avgt   15   10.749 ± 0.170  ns/op
SecondarySupersLookup.testPositive32  avgt   15   10.732 ± 0.153  ns/op
SecondarySupersLookup.testPositive40  avgt   15   10.732 ± 0.153  ns/op
SecondarySupersLookup.testPositive50  avgt   15   10.732 ± 0.153  ns/op
SecondarySupersLookup.testPositive60  avgt   15   10.733 ± 0.155  ns/op
SecondarySupersLookup.testPositive63  avgt   15   10.733 ± 0.153  ns/op
SecondarySupersLookup.testPositive64  avgt   15   10.735 ± 0.158  ns/op
Finished running test 'micro:vm.lang.SecondarySupersLookup'


With patch:

Benchmark                             Mode  Cnt    Score   Error  Units
SecondarySupersLookup.testNegative00  avgt   15   13.270 ± 0.201  ns/op
SecondarySupersLookup.testNegative01  avgt   15   13.261 ± 0.194  ns/op
SecondarySupersLookup.testNegative02  avgt   15   13.265 ± 0.198  ns/op
SecondarySupersLookup.testNegative03  avgt   15   13.274 ± 0.222  ns/op
SecondarySupersLookup.testNegative04  avgt   15   13.262 ± 0.197  ns/op
SecondarySupersLookup.testNegative05  avgt   15   13.264 ± 0.200  ns/op
SecondarySupersLookup.testNegative06  avgt   15   13.259 ± 0.193  ns/op
SecondarySupersLookup.testNegative07  avgt   15   13.261 ± 0.196  ns/op
SecondarySupersLookup.testNegative08  avgt   15   13.255 ± 0.186  ns/op
SecondarySupersLookup.testNegative09  avgt   15   13.267 ± 0.200  ns/op
SecondarySupersLookup.testNegative10  avgt   15   13.265 ± 0.200  ns/op
SecondarySupersLookup.testNegative16  avgt   15   13.277 ± 0.220  ns/op
SecondarySupersLookup.testNegative20  avgt   15   13.270 ± 0.209  ns/op
SecondarySupersLookup.testNegative30  avgt   15   13.279 ± 0.223  ns/op
SecondarySupersLookup.testNegative32  avgt   15   13.284 ± 0.232  ns/op
SecondarySupersLookup.testNegative40  avgt   15   13.288 ± 0.237  ns/op
SecondarySupersLookup.testNegative50  avgt   15   13.290 ± 0.241  ns/op
SecondarySupersLookup.testNegative55  avgt   15   51.179 ± 0.761  ns/op
SecondarySupersLookup.testNegative56  avgt   15   51.175 ± 0.763  ns/op
SecondarySupersLookup.testNegative57  avgt   15   51.550 ± 1.070  ns/op
SecondarySupersLookup.testNegative58  avgt   15   51.182 ± 0.737  ns/op
SecondarySupersLookup.testNegative59  avgt   15   51.169 ± 0.773  ns/op
SecondarySupersLookup.testNegative60  avgt   15   74.605 ± 1.445  ns/op
SecondarySupersLookup.testNegative61  avgt   15   74.434 ± 1.006  ns/op
SecondarySupersLookup.testNegative62  avgt   15   74.587 ± 1.078  ns/op
SecondarySupersLookup.testNegative63  avgt   15  155.881 ± 0.856  ns/op
SecondarySupersLookup.testNegative64  avgt   15  158.028 ± 5.778  ns/op
SecondarySupersLookup.testPositive01  avgt   15   10.744 ± 0.176  ns/op
SecondarySupersLookup.testPositive02  avgt   15   10.731 ± 0.151  ns/op
SecondarySupersLookup.testPositive03  avgt   15   10.727 ± 0.146  ns/op
SecondarySupersLookup.testPositive04  avgt   15   10.732 ± 0.153  ns/op
SecondarySupersLookup.testPositive05  avgt   15   10.728 ± 0.147  ns/op
SecondarySupersLookup.testPositive06  avgt   15   10.731 ± 0.151  ns/op
SecondarySupersLookup.testPositive07  avgt   15   10.725 ± 0.143  ns/op
SecondarySupersLookup.testPositive08  avgt   15   10.730 ± 0.148  ns/op
SecondarySupersLookup.testPositive09  avgt   15   10.734 ± 0.156  ns/op
SecondarySupersLookup.testPositive10  avgt   15   10.726 ± 0.144  ns/op
SecondarySupersLookup.testPositive16  avgt   15   10.727 ± 0.146  ns/op
SecondarySupersLookup.testPositive20  avgt   15   10.731 ± 0.152  ns/op
SecondarySupersLookup.testPositive30  avgt   15   10.729 ± 0.150  ns/op
SecondarySupersLookup.testPositive32  avgt   15   10.728 ± 0.147  ns/op
SecondarySupersLookup.testPositive40  avgt   15   10.745 ± 0.181  ns/op
SecondarySupersLookup.testPositive50  avgt   15   10.732 ± 0.153  ns/op
SecondarySupersLookup.testPositive60  avgt   15   10.729 ± 0.148  ns/op
SecondarySupersLookup.testPositive63  avgt   15   10.734 ± 0.158  ns/op
SecondarySupersLookup.testPositive64  avgt   15   10.732 ± 0.154  ns/op
Finished running test 'micro:vm.lang.SecondarySupersLookup'

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

PR Comment: https://git.openjdk.org/jdk/pull/19320#issuecomment-2146851987


More information about the hotspot-dev mailing list