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

Gui Cao gcao at openjdk.org
Wed Jun 19 17:17:16 UTC 2024


On Wed, 19 Jun 2024 10:46:36 GMT, Andrew Haley <aph at openjdk.org> wrote:

> I think I may have found the problem: the warmup loop doesn't run for long enough on some machines. Can you try something like `-wi 10` ?

Hi, Sorry for being late.
JMH tested on SOPHON SG2042 (has not Zbb)
Original(not with patch):

Benchmark                             Mode  Cnt    Score   Error  Units
SecondarySupersLookup.testNegative00  avgt   15   22.653 ± 0.158  ns/op
SecondarySupersLookup.testNegative01  avgt   15   23.154 ± 0.116  ns/op
SecondarySupersLookup.testNegative02  avgt   15   24.165 ± 0.138  ns/op
SecondarySupersLookup.testNegative03  avgt   15   25.177 ± 0.145  ns/op
SecondarySupersLookup.testNegative04  avgt   15   26.389 ± 0.457  ns/op
SecondarySupersLookup.testNegative05  avgt   15   27.181 ± 0.129  ns/op
SecondarySupersLookup.testNegative06  avgt   15   28.186 ± 0.146  ns/op
SecondarySupersLookup.testNegative07  avgt   15   29.185 ± 0.148  ns/op
SecondarySupersLookup.testNegative08  avgt   15   30.196 ± 0.149  ns/op
SecondarySupersLookup.testNegative09  avgt   15   31.219 ± 0.151  ns/op
SecondarySupersLookup.testNegative10  avgt   15   32.220 ± 0.162  ns/op
SecondarySupersLookup.testNegative16  avgt   15   62.332 ± 0.211  ns/op
SecondarySupersLookup.testNegative20  avgt   15   54.752 ± 4.521  ns/op
SecondarySupersLookup.testNegative30  avgt   15   64.195 ± 0.072  ns/op
SecondarySupersLookup.testNegative32  avgt   15   67.184 ± 0.074  ns/op
SecondarySupersLookup.testNegative40  avgt   15   79.235 ± 0.078  ns/op
SecondarySupersLookup.testNegative50  avgt   15   94.304 ± 0.093  ns/op
SecondarySupersLookup.testNegative55  avgt   15  101.850 ± 0.182  ns/op
SecondarySupersLookup.testNegative56  avgt   15  103.310 ± 0.099  ns/op
SecondarySupersLookup.testNegative57  avgt   15  104.864 ± 0.140  ns/op
SecondarySupersLookup.testNegative58  avgt   15  106.375 ± 0.170  ns/op
SecondarySupersLookup.testNegative59  avgt   15  108.056 ± 0.459  ns/op
SecondarySupersLookup.testNegative60  avgt   15  109.431 ± 0.142  ns/op
SecondarySupersLookup.testNegative61  avgt   15  110.859 ± 0.136  ns/op
SecondarySupersLookup.testNegative62  avgt   15  112.627 ± 0.477  ns/op
SecondarySupersLookup.testNegative63  avgt   15  113.870 ± 0.145  ns/op
SecondarySupersLookup.testNegative64  avgt   15  115.399 ± 0.145  ns/op
SecondarySupersLookup.testPositive01  avgt   15   20.129 ± 0.101  ns/op
SecondarySupersLookup.testPositive02  avgt   15   20.130 ± 0.105  ns/op
SecondarySupersLookup.testPositive03  avgt   15   20.130 ± 0.117  ns/op
SecondarySupersLookup.testPositive04  avgt   15   20.133 ± 0.106  ns/op
SecondarySupersLookup.testPositive05  avgt   15   20.144 ± 0.110  ns/op
SecondarySupersLookup.testPositive06  avgt   15   20.324 ± 0.454  ns/op
SecondarySupersLookup.testPositive07  avgt   15   20.131 ± 0.097  ns/op
SecondarySupersLookup.testPositive08  avgt   15   20.139 ± 0.102  ns/op
SecondarySupersLookup.testPositive09  avgt   15   20.135 ± 0.107  ns/op
SecondarySupersLookup.testPositive10  avgt   15   20.136 ± 0.111  ns/op
SecondarySupersLookup.testPositive16  avgt   15   20.122 ± 0.105  ns/op
SecondarySupersLookup.testPositive20  avgt   15   20.133 ± 0.106  ns/op
SecondarySupersLookup.testPositive30  avgt   15   20.147 ± 0.104  ns/op
SecondarySupersLookup.testPositive32  avgt   15   20.137 ± 0.101  ns/op
SecondarySupersLookup.testPositive40  avgt   15   20.139 ± 0.110  ns/op
SecondarySupersLookup.testPositive50  avgt   15   20.135 ± 0.120  ns/op
SecondarySupersLookup.testPositive60  avgt   15   20.133 ± 0.122  ns/op
SecondarySupersLookup.testPositive63  avgt   15   20.128 ± 0.106  ns/op
SecondarySupersLookup.testPositive64  avgt   15   20.138 ± 0.120  ns/op
Finished running test 'micro:vm.lang.SecondarySupersLookup'

With patch

Benchmark                             Mode  Cnt    Score   Error  Units
SecondarySupersLookup.testNegative00  avgt   15   20.644 ± 0.152  ns/op
SecondarySupersLookup.testNegative01  avgt   15   20.658 ± 0.120  ns/op
SecondarySupersLookup.testNegative02  avgt   15   20.855 ± 0.472  ns/op
SecondarySupersLookup.testNegative03  avgt   15   20.848 ± 0.479  ns/op
SecondarySupersLookup.testNegative04  avgt   15   20.885 ± 0.476  ns/op
SecondarySupersLookup.testNegative05  avgt   15   20.652 ± 0.124  ns/op
SecondarySupersLookup.testNegative06  avgt   15   20.644 ± 0.122  ns/op
SecondarySupersLookup.testNegative07  avgt   15   20.651 ± 0.124  ns/op
SecondarySupersLookup.testNegative08  avgt   15   20.654 ± 0.128  ns/op
SecondarySupersLookup.testNegative09  avgt   15   20.672 ± 0.133  ns/op
SecondarySupersLookup.testNegative10  avgt   15   20.649 ± 0.127  ns/op
SecondarySupersLookup.testNegative16  avgt   15   21.072 ± 0.571  ns/op
SecondarySupersLookup.testNegative20  avgt   15   20.880 ± 0.492  ns/op
SecondarySupersLookup.testNegative30  avgt   15   20.673 ± 0.167  ns/op
SecondarySupersLookup.testNegative32  avgt   15   20.672 ± 0.165  ns/op
SecondarySupersLookup.testNegative40  avgt   15   20.678 ± 0.184  ns/op
SecondarySupersLookup.testNegative50  avgt   15   20.687 ± 0.183  ns/op
SecondarySupersLookup.testNegative55  avgt   15  119.554 ± 4.316  ns/op
SecondarySupersLookup.testNegative56  avgt   15  121.866 ± 4.324  ns/op
SecondarySupersLookup.testNegative57  avgt   15  120.363 ± 4.179  ns/op
SecondarySupersLookup.testNegative58  avgt   15  123.774 ± 4.534  ns/op
SecondarySupersLookup.testNegative59  avgt   15  122.846 ± 3.909  ns/op
SecondarySupersLookup.testNegative60  avgt   15  150.788 ± 3.687  ns/op
SecondarySupersLookup.testNegative61  avgt   15  152.192 ± 4.246  ns/op
SecondarySupersLookup.testNegative62  avgt   15  154.314 ± 4.429  ns/op
SecondarySupersLookup.testNegative63  avgt   15  211.804 ± 2.630  ns/op
SecondarySupersLookup.testNegative64  avgt   15  213.304 ± 2.362  ns/op
SecondarySupersLookup.testPositive01  avgt   15   20.334 ± 0.453  ns/op
SecondarySupersLookup.testPositive02  avgt   15   20.128 ± 0.106  ns/op
SecondarySupersLookup.testPositive03  avgt   15   20.144 ± 0.115  ns/op
SecondarySupersLookup.testPositive04  avgt   15   20.124 ± 0.101  ns/op
SecondarySupersLookup.testPositive05  avgt   15   20.134 ± 0.111  ns/op
SecondarySupersLookup.testPositive06  avgt   15   20.125 ± 0.098  ns/op
SecondarySupersLookup.testPositive07  avgt   15   20.216 ± 0.212  ns/op
SecondarySupersLookup.testPositive08  avgt   15   20.379 ± 0.462  ns/op
SecondarySupersLookup.testPositive09  avgt   15   20.145 ± 0.095  ns/op
SecondarySupersLookup.testPositive10  avgt   15   20.135 ± 0.102  ns/op
SecondarySupersLookup.testPositive16  avgt   15   20.135 ± 0.118  ns/op
SecondarySupersLookup.testPositive20  avgt   15   20.128 ± 0.110  ns/op
SecondarySupersLookup.testPositive30  avgt   15   20.322 ± 0.455  ns/op
SecondarySupersLookup.testPositive32  avgt   15   20.130 ± 0.105  ns/op
SecondarySupersLookup.testPositive40  avgt   15   20.138 ± 0.111  ns/op
SecondarySupersLookup.testPositive50  avgt   15   20.135 ± 0.113  ns/op
SecondarySupersLookup.testPositive60  avgt   15   20.138 ± 0.099  ns/op
SecondarySupersLookup.testPositive63  avgt   15   20.335 ± 0.460  ns/op
SecondarySupersLookup.testPositive64  avgt   15   20.139 ± 0.105  ns/op
Finished running test 'micro:vm.lang.SecondarySupersLookup'


With patch and set warmup to 10 iterations

Benchmark                             Mode  Cnt    Score   Error  Units
SecondarySupersLookup.testNegative00  avgt   15   20.584 ± 0.041  ns/op
SecondarySupersLookup.testNegative01  avgt   15   20.607 ± 0.059  ns/op
SecondarySupersLookup.testNegative02  avgt   15   20.586 ± 0.034  ns/op
SecondarySupersLookup.testNegative03  avgt   15   20.601 ± 0.086  ns/op
SecondarySupersLookup.testNegative04  avgt   15   20.795 ± 0.452  ns/op
SecondarySupersLookup.testNegative05  avgt   15   20.579 ± 0.042  ns/op
SecondarySupersLookup.testNegative06  avgt   15   20.587 ± 0.033  ns/op
SecondarySupersLookup.testNegative07  avgt   15   20.594 ± 0.053  ns/op
SecondarySupersLookup.testNegative08  avgt   15   20.815 ± 0.451  ns/op
SecondarySupersLookup.testNegative09  avgt   15   20.571 ± 0.042  ns/op
SecondarySupersLookup.testNegative10  avgt   15   20.577 ± 0.035  ns/op
SecondarySupersLookup.testNegative16  avgt   15   20.773 ± 0.442  ns/op
SecondarySupersLookup.testNegative20  avgt   15   20.585 ± 0.046  ns/op
SecondarySupersLookup.testNegative30  avgt   15   20.780 ± 0.444  ns/op
SecondarySupersLookup.testNegative32  avgt   15   20.591 ± 0.039  ns/op
SecondarySupersLookup.testNegative40  avgt   15   20.581 ± 0.030  ns/op
SecondarySupersLookup.testNegative50  avgt   15   20.579 ± 0.034  ns/op
SecondarySupersLookup.testNegative55  avgt   15  119.795 ± 4.727  ns/op
SecondarySupersLookup.testNegative56  avgt   15  120.976 ± 4.602  ns/op
SecondarySupersLookup.testNegative57  avgt   15  124.057 ± 4.196  ns/op
SecondarySupersLookup.testNegative58  avgt   15  121.156 ± 3.756  ns/op
SecondarySupersLookup.testNegative59  avgt   15  126.792 ± 1.566  ns/op
SecondarySupersLookup.testNegative60  avgt   15  151.713 ± 3.150  ns/op
SecondarySupersLookup.testNegative61  avgt   15  151.494 ± 2.852  ns/op
SecondarySupersLookup.testNegative62  avgt   15  155.028 ± 2.996  ns/op
SecondarySupersLookup.testNegative63  avgt   15  211.724 ± 1.745  ns/op
SecondarySupersLookup.testNegative64  avgt   15  212.431 ± 1.077  ns/op
SecondarySupersLookup.testPositive01  avgt   15   20.074 ± 0.034  ns/op
SecondarySupersLookup.testPositive02  avgt   15   20.089 ± 0.037  ns/op
SecondarySupersLookup.testPositive03  avgt   15   20.086 ± 0.049  ns/op
SecondarySupersLookup.testPositive04  avgt   15   20.279 ± 0.434  ns/op
SecondarySupersLookup.testPositive05  avgt   15   20.090 ± 0.044  ns/op
SecondarySupersLookup.testPositive06  avgt   15   20.084 ± 0.038  ns/op
SecondarySupersLookup.testPositive07  avgt   15   20.281 ± 0.450  ns/op
SecondarySupersLookup.testPositive08  avgt   15   20.091 ± 0.047  ns/op
SecondarySupersLookup.testPositive09  avgt   15   20.083 ± 0.051  ns/op
SecondarySupersLookup.testPositive10  avgt   15   20.282 ± 0.454  ns/op
SecondarySupersLookup.testPositive16  avgt   15   20.086 ± 0.044  ns/op
SecondarySupersLookup.testPositive20  avgt   15   20.069 ± 0.026  ns/op
SecondarySupersLookup.testPositive30  avgt   15   20.285 ± 0.444  ns/op
SecondarySupersLookup.testPositive32  avgt   15   20.314 ± 0.450  ns/op
SecondarySupersLookup.testPositive40  avgt   15   20.089 ± 0.035  ns/op
SecondarySupersLookup.testPositive50  avgt   15   20.091 ± 0.042  ns/op
SecondarySupersLookup.testPositive60  avgt   15   20.090 ± 0.051  ns/op
SecondarySupersLookup.testPositive63  avgt   15   20.084 ± 0.047  ns/op
SecondarySupersLookup.testPositive64  avgt   15   20.284 ± 0.451  ns/op
Finished running test 'micro:vm.lang.SecondarySupersLookup'


JMH tested on SOPHON SG2042 (has not Zbb) and use -XX:-UseSecondarySupersCache to disable UseSecondarySupersCache
Original(not with patch):

Benchmark                             Mode  Cnt    Score    Error  Units
SecondarySupersLookup.testNegative00  avgt   15   21.655 ±  0.131  ns/op
SecondarySupersLookup.testNegative01  avgt   15   22.739 ±  0.174  ns/op
SecondarySupersLookup.testNegative02  avgt   15   23.670 ±  0.116  ns/op
SecondarySupersLookup.testNegative03  avgt   15   24.674 ±  0.162  ns/op
SecondarySupersLookup.testNegative04  avgt   15   25.661 ±  0.125  ns/op
SecondarySupersLookup.testNegative05  avgt   15   26.683 ±  0.136  ns/op
SecondarySupersLookup.testNegative06  avgt   15   27.871 ±  0.461  ns/op
SecondarySupersLookup.testNegative07  avgt   15   28.669 ±  0.133  ns/op
SecondarySupersLookup.testNegative08  avgt   15   29.705 ±  0.155  ns/op
SecondarySupersLookup.testNegative09  avgt   15   46.543 ±  2.841  ns/op
SecondarySupersLookup.testNegative10  avgt   15   31.702 ±  0.157  ns/op
SecondarySupersLookup.testNegative16  avgt   15   58.564 ±  1.906  ns/op
SecondarySupersLookup.testNegative20  avgt   15   54.193 ±  2.378  ns/op
SecondarySupersLookup.testNegative30  avgt   15   66.840 ±  6.458  ns/op
SecondarySupersLookup.testNegative32  avgt   15   70.205 ±  6.984  ns/op
SecondarySupersLookup.testNegative40  avgt   15   83.552 ±  9.081  ns/op
SecondarySupersLookup.testNegative50  avgt   15  100.477 ± 11.709  ns/op
SecondarySupersLookup.testNegative55  avgt   15  108.599 ± 13.016  ns/op
SecondarySupersLookup.testNegative56  avgt   15  110.320 ± 13.335  ns/op
SecondarySupersLookup.testNegative57  avgt   15  112.058 ± 13.553  ns/op
SecondarySupersLookup.testNegative58  avgt   15  113.837 ± 13.766  ns/op
SecondarySupersLookup.testNegative59  avgt   15  115.353 ± 14.075  ns/op
SecondarySupersLookup.testNegative60  avgt   15  117.174 ± 14.268  ns/op
SecondarySupersLookup.testNegative61  avgt   15  118.633 ± 14.570  ns/op
SecondarySupersLookup.testNegative62  avgt   15  120.310 ± 14.772  ns/op
SecondarySupersLookup.testNegative63  avgt   15  122.178 ± 15.065  ns/op
SecondarySupersLookup.testNegative64  avgt   15  123.633 ± 15.321  ns/op
SecondarySupersLookup.testPositive01  avgt   15   22.652 ±  0.122  ns/op
SecondarySupersLookup.testPositive02  avgt   15   23.845 ±  0.474  ns/op
SecondarySupersLookup.testPositive03  avgt   15   24.649 ±  0.101  ns/op
SecondarySupersLookup.testPositive04  avgt   15   25.648 ±  0.114  ns/op
SecondarySupersLookup.testPositive05  avgt   15   26.838 ±  0.454  ns/op
SecondarySupersLookup.testPositive06  avgt   15   27.857 ±  0.439  ns/op
SecondarySupersLookup.testPositive07  avgt   15   28.885 ±  0.460  ns/op
SecondarySupersLookup.testPositive08  avgt   15   29.672 ±  0.125  ns/op
SecondarySupersLookup.testPositive09  avgt   15   30.696 ±  0.110  ns/op
SecondarySupersLookup.testPositive10  avgt   15   31.856 ±  0.446  ns/op
SecondarySupersLookup.testPositive16  avgt   15   59.366 ±  1.918  ns/op
SecondarySupersLookup.testPositive20  avgt   15   54.020 ±  0.517  ns/op
SecondarySupersLookup.testPositive30  avgt   15   68.943 ±  6.791  ns/op
SecondarySupersLookup.testPositive32  avgt   15   70.269 ±  6.151  ns/op
SecondarySupersLookup.testPositive40  avgt   15   83.555 ±  7.987  ns/op
SecondarySupersLookup.testPositive50  avgt   15   99.817 ± 10.157  ns/op
SecondarySupersLookup.testPositive60  avgt   15  116.173 ± 11.984  ns/op
SecondarySupersLookup.testPositive63  avgt   15  120.997 ± 12.620  ns/op
SecondarySupersLookup.testPositive64  avgt   15  122.597 ± 12.695  ns/op
Finished running test 'micro:vm.lang.SecondarySupersLookup'


With patch

Benchmark                             Mode  Cnt    Score    Error  Units                                                                                                                            [9/1814]
SecondarySupersLookup.testNegative00  avgt   15   20.140 ±  0.129  ns/op
SecondarySupersLookup.testNegative01  avgt   15   20.155 ±  0.127  ns/op
SecondarySupersLookup.testNegative02  avgt   15   20.142 ±  0.116  ns/op
SecondarySupersLookup.testNegative03  avgt   15   20.137 ±  0.111  ns/op
SecondarySupersLookup.testNegative04  avgt   15   20.171 ±  0.125  ns/op
SecondarySupersLookup.testNegative05  avgt   15   20.148 ±  0.112  ns/op
SecondarySupersLookup.testNegative06  avgt   15   20.148 ±  0.137  ns/op
SecondarySupersLookup.testNegative07  avgt   15   20.544 ±  0.563  ns/op
SecondarySupersLookup.testNegative08  avgt   15   20.345 ±  0.462  ns/op
SecondarySupersLookup.testNegative09  avgt   15   20.360 ±  0.453  ns/op
SecondarySupersLookup.testNegative10  avgt   15   20.342 ±  0.458  ns/op
SecondarySupersLookup.testNegative16  avgt   15   20.160 ±  0.152  ns/op
SecondarySupersLookup.testNegative20  avgt   15   20.366 ±  0.477  ns/op
SecondarySupersLookup.testNegative30  avgt   15   20.360 ±  0.470  ns/op
SecondarySupersLookup.testNegative32  avgt   15   20.178 ±  0.155  ns/op
SecondarySupersLookup.testNegative40  avgt   15   20.173 ±  0.173  ns/op
SecondarySupersLookup.testNegative50  avgt   15   20.191 ±  0.181  ns/op
SecondarySupersLookup.testNegative55  avgt   15  116.033 ±  1.852  ns/op
SecondarySupersLookup.testNegative56  avgt   15  117.699 ±  2.857  ns/op
SecondarySupersLookup.testNegative57  avgt   15  118.839 ±  1.786  ns/op
SecondarySupersLookup.testNegative58  avgt   15  120.219 ±  3.305  ns/op
SecondarySupersLookup.testNegative59  avgt   15  122.110 ±  3.362  ns/op
SecondarySupersLookup.testNegative60  avgt   15  148.384 ±  3.282  ns/op
SecondarySupersLookup.testNegative61  avgt   15  149.934 ±  2.935  ns/op
SecondarySupersLookup.testNegative62  avgt   15  149.537 ±  1.754  ns/op
SecondarySupersLookup.testNegative63  avgt   15  210.797 ±  1.352  ns/op
SecondarySupersLookup.testNegative64  avgt   15  212.224 ±  1.642  ns/op
SecondarySupersLookup.testPositive01  avgt   15   24.010 ±  0.138  ns/op
SecondarySupersLookup.testPositive02  avgt   15   23.137 ±  0.110  ns/op
SecondarySupersLookup.testPositive03  avgt   15   26.117 ±  0.474  ns/op
SecondarySupersLookup.testPositive04  avgt   15   25.814 ±  0.606  ns/op
SecondarySupersLookup.testPositive05  avgt   15   23.353 ±  0.496  ns/op
SecondarySupersLookup.testPositive06  avgt   15   30.559 ±  1.957  ns/op
SecondarySupersLookup.testPositive07  avgt   15   26.078 ±  0.411  ns/op
SecondarySupersLookup.testPositive08  avgt   15   36.190 ±  4.512  ns/op
SecondarySupersLookup.testPositive09  avgt   15   31.033 ±  1.767  ns/op
SecondarySupersLookup.testPositive10  avgt   15   24.724 ±  0.397  ns/op
SecondarySupersLookup.testPositive16  avgt   15   41.952 ±  3.365  ns/op
SecondarySupersLookup.testPositive20  avgt   15   32.843 ±  3.088  ns/op
SecondarySupersLookup.testPositive30  avgt   15   40.470 ±  2.166  ns/op
SecondarySupersLookup.testPositive32  avgt   15   70.726 ±  3.383  ns/op
SecondarySupersLookup.testPositive40  avgt   15   76.331 ±  4.519  ns/op
SecondarySupersLookup.testPositive50  avgt   15   73.510 ±  1.509  ns/op
SecondarySupersLookup.testPositive60  avgt   15  112.032 ±  2.564  ns/op
SecondarySupersLookup.testPositive63  avgt   15  215.567 ± 18.732  ns/op
SecondarySupersLookup.testPositive64  avgt   15  168.949 ±  2.979  ns/op
Finished running test 'micro:vm.lang.SecondarySupersLookup'


With patch and set warmup to 10 iterations

Benchmark                             Mode  Cnt    Score   Error  Units
SecondarySupersLookup.testNegative00  avgt   15   20.485 ± 0.543  ns/op
SecondarySupersLookup.testNegative01  avgt   15   20.103 ± 0.050  ns/op
SecondarySupersLookup.testNegative02  avgt   15   20.081 ± 0.034  ns/op
SecondarySupersLookup.testNegative03  avgt   15   20.087 ± 0.042  ns/op
SecondarySupersLookup.testNegative04  avgt   15   20.077 ± 0.034  ns/op
SecondarySupersLookup.testNegative05  avgt   15   20.085 ± 0.031  ns/op
SecondarySupersLookup.testNegative06  avgt   15   20.273 ± 0.449  ns/op
SecondarySupersLookup.testNegative07  avgt   15   20.076 ± 0.042  ns/op
SecondarySupersLookup.testNegative08  avgt   15   20.081 ± 0.041  ns/op
SecondarySupersLookup.testNegative09  avgt   15   20.095 ± 0.052  ns/op
SecondarySupersLookup.testNegative10  avgt   15   20.281 ± 0.442  ns/op
SecondarySupersLookup.testNegative16  avgt   15   20.085 ± 0.036  ns/op
SecondarySupersLookup.testNegative20  avgt   15   20.096 ± 0.052  ns/op
SecondarySupersLookup.testNegative30  avgt   15   20.075 ± 0.032  ns/op
SecondarySupersLookup.testNegative32  avgt   15   20.091 ± 0.047  ns/op
SecondarySupersLookup.testNegative40  avgt   15   20.078 ± 0.027  ns/op
SecondarySupersLookup.testNegative50  avgt   15   20.082 ± 0.039  ns/op
SecondarySupersLookup.testNegative55  avgt   15  115.646 ± 2.057  ns/op
SecondarySupersLookup.testNegative56  avgt   15  117.470 ± 1.702  ns/op
SecondarySupersLookup.testNegative57  avgt   15  119.403 ± 2.837  ns/op
SecondarySupersLookup.testNegative58  avgt   15  120.050 ± 3.097  ns/op
SecondarySupersLookup.testNegative59  avgt   15  121.112 ± 3.306  ns/op
SecondarySupersLookup.testNegative60  avgt   15  148.076 ± 1.812  ns/op
SecondarySupersLookup.testNegative61  avgt   15  150.464 ± 3.034  ns/op
SecondarySupersLookup.testNegative62  avgt   15  150.514 ± 2.516  ns/op
SecondarySupersLookup.testNegative63  avgt   15  211.773 ± 1.382  ns/op
SecondarySupersLookup.testNegative64  avgt   15  212.451 ± 2.154  ns/op
SecondarySupersLookup.testPositive01  avgt   15   23.950 ± 0.118  ns/op
SecondarySupersLookup.testPositive02  avgt   15   23.080 ± 0.033  ns/op
SecondarySupersLookup.testPositive03  avgt   15   26.222 ± 0.457  ns/op
SecondarySupersLookup.testPositive04  avgt   15   25.841 ± 0.525  ns/op
SecondarySupersLookup.testPositive05  avgt   15   23.097 ± 0.059  ns/op
SecondarySupersLookup.testPositive06  avgt   15   31.586 ± 2.145  ns/op
SecondarySupersLookup.testPositive07  avgt   15   26.271 ± 0.567  ns/op
SecondarySupersLookup.testPositive08  avgt   15   33.403 ± 0.255  ns/op
SecondarySupersLookup.testPositive09  avgt   15   32.042 ± 2.643  ns/op
SecondarySupersLookup.testPositive10  avgt   15   24.276 ± 0.104  ns/op
SecondarySupersLookup.testPositive16  avgt   15   40.799 ± 0.489  ns/op
SecondarySupersLookup.testPositive20  avgt   15   35.114 ± 4.011  ns/op
SecondarySupersLookup.testPositive30  avgt   15   42.361 ± 2.791  ns/op
SecondarySupersLookup.testPositive32  avgt   15   67.847 ± 0.689  ns/op
SecondarySupersLookup.testPositive40  avgt   15   73.685 ± 1.336  ns/op
SecondarySupersLookup.testPositive50  avgt   15   72.951 ± 0.548  ns/op
SecondarySupersLookup.testPositive60  avgt   15  111.593 ± 3.444  ns/op
SecondarySupersLookup.testPositive63  avgt   15  203.572 ± 2.176  ns/op
SecondarySupersLookup.testPositive64  avgt   15  168.671 ± 0.581  ns/op
Finished running test 'micro:vm.lang.SecondarySupersLookup'


With the jmh test data, we see that there is a performance decrease from testNegative55 to testNegative64 when zbb is not available. This is because a loop is needed to count the number of 1 when Zbb is not available. I've tested this before on Banana Pi BPI-F3 board (has Zbb) and Disable UseZbb to using scalar registers as well, with similar data. When Zbb is available, the test data is better in all test cases except testNegative63, testNegative64. So the performance decrease here compared to when using Zbb is caused by the number of 1's counted using the scalar register loop.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/19320#discussion_r1646528616


More information about the hotspot-dev mailing list