arch: arm: bpf: Converting cBPF to eBPF for arm 32 bit

Kees Cook keescook at chromium.org
Mon May 22 13:05:38 PDT 2017


On Mon, May 22, 2017 at 10:04 AM, Shubham Bansal
<illusionist.neo at gmail.com> wrote:
> These all benchmarks are for ARMv7.

Thanks! In the future, try to avoid the white-space damage
(line-wrapping). And it looks like you've still got debugging turned
on in your jit code:

[   56.176033] test_bpf: #21 LD_CPU
[   56.176329] bpf_jit: *** NOT YET: opcode 85 ***
[   56.176565] jited:0 2639 702 PASS

That breaks the test report line. After I cleaned these up and parsed
the results, they look great. Most things are half the speed of the
interpreter, if not better. Only the LD_ABS suffered, and that's
mainly the const blinding, I assume.

Please post your current patch. Thanks for this!

-Kees

-- 
Kees Cook
Pixel Security
-------------- next part --------------
#0 TAX
	interp: 757	645	650
	jitted: 234	171	195
	        30.9%	26.5%	30.0%
	harden: 239	218	229
	        31.6%	33.8%	35.2%
#1 TXA
	interp: 366	334	336
	jitted: 81	79	77
	        22.1%	23.7%	22.9%
	harden: 89	119	85
	        24.3%	35.6%	25.3%
#2 ADD_SUB_MUL_K
	interp: 543
	jitted: 89
	        16.4%
	harden: 213
	        39.2%
#3 DIV_MOD_KX
	interp: 1509
	jitted: 939
	        62.2%
	harden: 1190
	        78.9%
#4 AND_OR_LSH_K
	interp: 539	559
	jitted: 116	114
	        21.5%	20.4%
	harden: 200	149
	        37.1%	26.7%
#5 LD_IMM_0
	interp: 412
	jitted: 93
	        22.6%
	harden: 101
	        24.5%
#6 LD_IND
	interp: 428	376	389
	jitted: 371	279	274
	        86.7%	74.2%	70.4%
	harden: 314	310	283
	        73.4%	82.4%	72.8%
#7 LD_ABS
	interp: 509	405	358
	jitted: 408	402	272
	        80.2%	99.3%	76.0%
	harden: 376	460	397
	        73.9%	113.6%	110.9%
#8 LD_ABS_LL
	interp: 542	783
	jitted: 387	346
	        71.4%	44.2%
	harden: 608	415
	        112.2%	53.0%
#9 LD_IND_LL
	interp: 524	496	723
	jitted: 239	248	217
	        45.6%	50.0%	30.0%
	harden: 248	256	268
	        47.3%	51.6%	37.1%
#10 LD_ABS_NET
	interp: 527	545
	jitted: 356	332
	        67.6%	60.9%
	harden: 435	420
	        82.5%	77.1%
#11 LD_IND_NET
	interp: 650	495	647
	jitted: 223	212	320
	        34.3%	42.8%	49.5%
	harden: 240	228	215
	        36.9%	46.1%	33.2%
#12 LD_PKTTYPE
	interp: 686	901
	jitted: 102	90
	        14.9%	10.0%
	harden: 211	274
	        30.8%	30.4%
#13 LD_MARK
	interp: 305	291
	jitted: 80	80
	        26.2%	27.5%
	harden: 119	76
	        39.0%	26.1%
#14 LD_RXHASH
	interp: 257	259
	jitted: 73	71
	        28.4%	27.4%
	harden: 78	70
	        30.4%	27.0%
#15 LD_QUEUE
	interp: 255	254
	jitted: 120	121
	        47.1%	47.6%
	harden: 77	73
	        30.2%	28.7%
#16 LD_PROTOCOL
	interp: 593	603
	jitted: 256	247
	        43.2%	41.0%
	harden: 326	320
	        55.0%	53.1%
#17 LD_VLAN_TAG
	interp: 288	292
	jitted: 82	84
	        28.5%	28.8%
	harden: 129	86
	        44.8%	29.5%
#18 LD_VLAN_TAG_PRESENT
	interp: 335	421
	jitted: 80	77
	        23.9%	18.3%
	harden: 87	88
	        26.0%	20.9%
#19 LD_IFINDEX
	interp: 8568	606
	jitted: 87	98
	        1.0%	16.2%
	harden: 97	95
	        1.1%	15.7%
#20 LD_HATYPE
	interp: 618	695
	jitted: 95	90
	        15.4%	12.9%
	harden: 94	118
	        15.2%	17.0%
#25 LD_ANC_XOR
	interp: 314	344
	jitted: 86	100
	        27.4%	29.1%
	harden: 168	156
	        53.5%	45.3%
#26 SPILL_FILL
	interp: 757	850	903
	jitted: 131	137	123
	        17.3%	16.1%	13.6%
	harden: 232	212	219
	        30.6%	24.9%	24.3%
#27 JEQ
	interp: 380	420	426
	jitted: 266	189	216
	        70.0%	45.0%	50.7%
	harden: 362	352	230
	        95.3%	83.8%	54.0%
#28 JGT
	interp: 376	467	448
	jitted: 301	211	192
	        80.1%	45.2%	42.9%
	harden: 334	236	197
	        88.8%	50.5%	44.0%
#29 JGE
	interp: 446	590	498
	jitted: 191	200	223
	        42.8%	33.9%	44.8%
	harden: 260	318	307
	        58.3%	53.9%	61.6%
#30 JSET
	interp: 571	787	1003
	jitted: 211	210	214
	        37.0%	26.7%	21.3%
	harden: 274	339	410
	        48.0%	43.1%	40.9%
#31 tcpdump port 22
	interp: 358	1079	1190
	jitted: 314	722	711
	        87.7%	66.9%	59.7%
	harden: 355	951	968
	        99.2%	88.1%	81.3%
#32 tcpdump complex
	interp: 319	1061	2324
	jitted: 291	707	1068
	        91.2%	66.6%	46.0%
	harden: 318	798	1308
	        99.7%	75.2%	56.3%
#33 RET_A
	interp: 253	249
	jitted: 83	88
	        32.8%	35.3%
	harden: 83	76
	        32.8%	30.5%
#34 INT: ADD trivial
	interp: 414
	jitted: 162
	        39.1%
	harden: 152
	        36.7%
#35 INT: MUL_X
	interp: 336
	jitted: 176
	        52.4%
	harden: 192
	        57.1%
#36 INT: MUL_X2
	interp: 431
	jitted: 84
	        19.5%
	harden: 165
	        38.3%
#37 INT: MUL32_X
	interp: 523
	jitted: 99
	        18.9%
	harden: 163
	        31.2%
#38 INT: ADD 64-bit
	interp: 5263
	jitted: 1066
	        20.3%
	harden: 1507
	        28.6%
#39 INT: ADD 32-bit
	interp: 4127
	jitted: 666
	        16.1%
	harden: 954
	        23.1%
#40 INT: SUB
	interp: 4218
	jitted: 3236
	        76.7%
	harden: 1159
	        27.5%
#41 INT: XOR
	interp: 2252
	jitted: 308
	        13.7%
	harden: 480
	        21.3%
#42 INT: MUL
	interp: 1986
	jitted: 376
	        18.9%
	harden: 486
	        24.5%
#43 MOV REG64
	interp: 1103
	jitted: 227
	        20.6%
	harden: 274
	        24.8%
#44 MOV REG32
	interp: 1140
	jitted: 171
	        15.0%
	harden: 253
	        22.2%
#45 LD IMM64
	interp: 1182
	jitted: 163
	        13.8%
	harden: 578
	        48.9%
#47 INT: shifts by register
	interp: 1125
	jitted: 208
	        18.5%
	harden: 381
	        33.9%
#48 INT: DIV + ABS
	interp: 570	850
	jitted: 659	601
	        115.6%	70.7%
	harden: 588	482
	        103.2%	56.7%
#49 INT: DIV by zero
	interp: 350	305
	jitted: 317	169
	        90.6%	55.4%
	harden: 276	199
	        78.9%	65.2%
#54 JUMPS + HOLES
	interp: 863
	jitted: 358
	        41.5%
	harden: 371
	        43.0%
#57 M[]: alt STX + LDX
	interp: 3990
	jitted: 456
	        11.4%
	harden: 621
	        15.6%
#58 M[]: full STX + full LDX
	interp: 2819
	jitted: 438
	        15.5%
	harden: 586
	        20.8%
#60 LD [SKF_AD_OFF-1]
	interp: 313
	jitted: 198
	        63.3%
	harden: 195
	        62.3%
#61 load 64-bit immediate
	interp: 579
	jitted: 125
	        21.6%
	harden: 220
	        38.0%
#62 nmap reduced
	interp: 1860
	jitted: 1054
	        56.7%
	harden: 816
	        43.9%
#63 ALU_MOV_X: dst = 2
	interp: 249
	jitted: 81
	        32.5%
	harden: 76
	        30.5%
#64 ALU_MOV_X: dst = 4294967295
	interp: 264
	jitted: 85
	        32.2%
	harden: 79
	        29.9%
#65 ALU64_MOV_X: dst = 2
	interp: 229
	jitted: 96
	        41.9%
	harden: 80
	        34.9%
#66 ALU64_MOV_X: dst = 4294967295
	interp: 213
	jitted: 71
	        33.3%
	harden: 79
	        37.1%
#67 ALU_MOV_K: dst = 2
	interp: 167
	jitted: 70
	        41.9%
	harden: 75
	        44.9%
#68 ALU_MOV_K: dst = 4294967295
	interp: 149
	jitted: 71
	        47.7%
	harden: 73
	        49.0%
#69 ALU_MOV_K: 0x0000ffffffff0000 = 0x00000000ffffffff
	interp: 358
	jitted: 97
	        27.1%
	harden: 195
	        54.5%
#70 ALU64_MOV_K: dst = 2
	interp: 158
	jitted: 75
	        47.5%
	harden: 77
	        48.7%
#71 ALU64_MOV_K: dst = 2147483647
	interp: 156
	jitted: 66
	        42.3%
	harden: 104
	        66.7%
#72 ALU64_OR_K: dst = 0x0
	interp: 306
	jitted: 92
	        30.1%
	harden: 215
	        70.3%
#73 ALU64_MOV_K: dst = -1
	interp: 327
	jitted: 94
	        28.7%
	harden: 173
	        52.9%
#74 ALU_ADD_X: 1 + 2 = 3
	interp: 212
	jitted: 66
	        31.1%
	harden: 114
	        53.8%
#75 ALU_ADD_X: 1 + 4294967294 = 4294967295
	interp: 231
	jitted: 66
	        28.6%
	harden: 112
	        48.5%
#76 ALU_ADD_X: 2 + 4294967294 = 0
	interp: 309
	jitted: 87
	        28.2%
	harden: 186
	        60.2%
#77 ALU64_ADD_X: 1 + 2 = 3
	interp: 280
	jitted: 77
	        27.5%
	harden: 159
	        56.8%
#78 ALU64_ADD_X: 1 + 4294967294 = 4294967295
	interp: 286
	jitted: 72
	        25.2%
	harden: 109
	        38.1%
#79 ALU64_ADD_X: 2 + 4294967294 = 4294967296
	interp: 460
	jitted: 79
	        17.2%
	harden: 218
	        47.4%
#80 ALU_ADD_K: 1 + 2 = 3
	interp: 210
	jitted: 75
	        35.7%
	harden: 120
	        57.1%
#81 ALU_ADD_K: 3 + 0 = 3
	interp: 208
	jitted: 71
	        34.1%
	harden: 118
	        56.7%
#82 ALU_ADD_K: 1 + 4294967294 = 4294967295
	interp: 205
	jitted: 67
	        32.7%
	harden: 121
	        59.0%
#83 ALU_ADD_K: 4294967294 + 2 = 0
	interp: 323
	jitted: 82
	        25.4%
	harden: 139
	        43.0%
#84 ALU_ADD_K: 0 + (-1) = 0x00000000ffffffff
	interp: 338
	jitted: 86
	        25.4%
	harden: 176
	        52.1%
#85 ALU_ADD_K: 0 + 0xffff = 0xffff
	interp: 347
	jitted: 99
	        28.5%
	harden: 190
	        54.8%
#86 ALU_ADD_K: 0 + 0x7fffffff = 0x7fffffff
	interp: 360
	jitted: 113
	        31.4%
	harden: 228
	        63.3%
#87 ALU_ADD_K: 0 + 0x80000000 = 0x80000000
	interp: 345
	jitted: 123
	        35.7%
	harden: 198
	        57.4%
#88 ALU_ADD_K: 0 + 0x80008000 = 0x80008000
	interp: 377
	jitted: 85
	        22.5%
	harden: 189
	        50.1%
#89 ALU64_ADD_K: 1 + 2 = 3
	interp: 184
	jitted: 66
	        35.9%
	harden: 112
	        60.9%
#90 ALU64_ADD_K: 3 + 0 = 3
	interp: 185
	jitted: 66
	        35.7%
	harden: 111
	        60.0%
#91 ALU64_ADD_K: 1 + 2147483646 = 2147483647
	interp: 186
	jitted: 69
	        37.1%
	harden: 138
	        74.2%
#92 ALU64_ADD_K: 4294967294 + 2 = 4294967296
	interp: 353
	jitted: 109
	        30.9%
	harden: 151
	        42.8%
#93 ALU64_ADD_K: 2147483646 + -2147483647 = -1
	interp: 182
	jitted: 72
	        39.6%
	harden: 115
	        63.2%
#94 ALU64_ADD_K: 1 + 0 = 1
	interp: 311
	jitted: 126
	        40.5%
	harden: 206
	        66.2%
#95 ALU64_ADD_K: 0 + (-1) = 0xffffffffffffffff
	interp: 339
	jitted: 107
	        31.6%
	harden: 211
	        62.2%
#96 ALU64_ADD_K: 0 + 0xffff = 0xffff
	interp: 310
	jitted: 98
	        31.6%
	harden: 250
	        80.6%
#97 ALU64_ADD_K: 0 + 0x7fffffff = 0x7fffffff
	interp: 313
	jitted: 87
	        27.8%
	harden: 199
	        63.6%
#98 ALU64_ADD_K: 0 + 0x80000000 = 0xffffffff80000000
	interp: 340
	jitted: 98
	        28.8%
	harden: 177
	        52.1%
#99 ALU_ADD_K: 0 + 0x80008000 = 0xffffffff80008000
	interp: 311
	jitted: 92
	        29.6%
	harden: 243
	        78.1%
#100 ALU_SUB_X: 3 - 1 = 2
	interp: 213
	jitted: 77
	        36.2%
	harden: 108
	        50.7%
#101 ALU_SUB_X: 4294967295 - 4294967294 = 1
	interp: 212
	jitted: 72
	        34.0%
	harden: 133
	        62.7%
#102 ALU64_SUB_X: 3 - 1 = 2
	interp: 237
	jitted: 72
	        30.4%
	harden: 110
	        46.4%
#103 ALU64_SUB_X: 4294967295 - 4294967294 = 1
	interp: 221
	jitted: 71
	        32.1%
	harden: 111
	        50.2%
#104 ALU_SUB_K: 3 - 1 = 2
	interp: 177
	jitted: 120
	        67.8%
	harden: 110
	        62.1%
#105 ALU_SUB_K: 3 - 0 = 3
	interp: 179
	jitted: 82
	        45.8%
	harden: 123
	        68.7%
#106 ALU_SUB_K: 4294967295 - 4294967294 = 1
	interp: 195
	jitted: 103
	        52.8%
	harden: 124
	        63.6%
#107 ALU64_SUB_K: 3 - 1 = 2
	interp: 183
	jitted: 140
	        76.5%
	harden: 116
	        63.4%
#108 ALU64_SUB_K: 3 - 0 = 3
	interp: 177
	jitted: 117
	        66.1%
	harden: 133
	        75.1%
#109 ALU64_SUB_K: 4294967294 - 4294967295 = -1
	interp: 181
	jitted: 83
	        45.9%
	harden: 148
	        81.8%
#110 ALU64_ADD_K: 2147483646 - 2147483647 = -1
	interp: 177
	jitted: 77
	        43.5%
	harden: 145
	        81.9%
#111 ALU_MUL_X: 2 * 3 = 6
	interp: 241
	jitted: 68
	        28.2%
	harden: 172
	        71.4%
#112 ALU_MUL_X: 2 * 0x7FFFFFF8 = 0xFFFFFFF0
	interp: 220
	jitted: 70
	        31.8%
	harden: 117
	        53.2%
#113 ALU_MUL_X: -1 * -1 = 1
	interp: 224
	jitted: 73
	        32.6%
	harden: 109
	        48.7%
#114 ALU64_MUL_X: 2 * 3 = 6
	interp: 213
	jitted: 70
	        32.9%
	harden: 115
	        54.0%
#115 ALU64_MUL_X: 1 * 2147483647 = 2147483647
	interp: 230
	jitted: 75
	        32.6%
	harden: 119
	        51.7%
#116 ALU_MUL_K: 2 * 3 = 6
	interp: 191
	jitted: 67
	        35.1%
	harden: 111
	        58.1%
#117 ALU_MUL_K: 3 * 1 = 3
	interp: 189
	jitted: 71
	        37.6%
	harden: 118
	        62.4%
#118 ALU_MUL_K: 2 * 0x7FFFFFF8 = 0xFFFFFFF0
	interp: 192
	jitted: 70
	        36.5%
	harden: 109
	        56.8%
#119 ALU_MUL_K: 1 * (-1) = 0x00000000ffffffff
	interp: 333
	jitted: 153
	        45.9%
	harden: 201
	        60.4%
#120 ALU64_MUL_K: 2 * 3 = 6
	interp: 185
	jitted: 101
	        54.6%
	harden: 116
	        62.7%
#121 ALU64_MUL_K: 3 * 1 = 3
	interp: 185
	jitted: 108
	        58.4%
	harden: 115
	        62.2%
#122 ALU64_MUL_K: 1 * 2147483647 = 2147483647
	interp: 184
	jitted: 106
	        57.6%
	harden: 278
	        151.1%
#123 ALU64_MUL_K: 1 * -2147483647 = -2147483647
	interp: 183
	jitted: 92
	        50.3%
	harden: 125
	        68.3%
#124 ALU64_MUL_K: 1 * (-1) = 0xffffffffffffffff
	interp: 336
	jitted: 122
	        36.3%
	harden: 208
	        61.9%
#125 ALU_DIV_X: 6 / 2 = 3
	interp: 316
	jitted: 220
	        69.6%
	harden: 246
	        77.8%
#126 ALU_DIV_X: 4294967295 / 4294967295 = 1
	interp: 315
	jitted: 208
	        66.0%
	harden: 291
	        92.4%
#130 ALU_DIV_K: 6 / 2 = 3
	interp: 249
	jitted: 246
	        98.8%
	harden: 234
	        94.0%
#131 ALU_DIV_K: 3 / 1 = 3
	interp: 240
	jitted: 199
	        82.9%
	harden: 240
	        100.0%
#132 ALU_DIV_K: 4294967295 / 4294967295 = 1
	interp: 254
	jitted: 192
	        75.6%
	harden: 276
	        108.7%
#133 ALU_DIV_K: 0xffffffffffffffff / (-1) = 0x1
	interp: 379
	jitted: 215
	        56.7%
	harden: 373
	        98.4%
#138 ALU_MOD_X: 3 % 2 = 1
	interp: 421
	jitted: 235
	        55.8%
	harden: 293
	        69.6%
#139 ALU_MOD_X: 4294967295 % 4294967293 = 2
	interp: 453
	jitted: 262
	        57.8%
	harden: 289
	        63.8%
#142 ALU_MOD_K: 3 % 2 = 1
	interp: 380
	jitted: 231
	        60.8%
	harden: 311
	        81.8%
#144 ALU_MOD_K: 4294967295 % 4294967293 = 2
	interp: 467
	jitted: 257
	        55.0%
	harden: 319
	        68.3%
#148 ALU_AND_X: 3 & 2 = 2
	interp: 225
	jitted: 100
	        44.4%
	harden: 109
	        48.4%
#149 ALU_AND_X: 0xffffffff & 0xffffffff = 0xffffffff
	interp: 261
	jitted: 106
	        40.6%
	harden: 130
	        49.8%
#150 ALU64_AND_X: 3 & 2 = 2
	interp: 273
	jitted: 86
	        31.5%
	harden: 106
	        38.8%
#151 ALU64_AND_X: 0xffffffff & 0xffffffff = 0xffffffff
	interp: 251
	jitted: 118
	        47.0%
	harden: 102
	        40.6%
#152 ALU_AND_K: 3 & 2 = 2
	interp: 201
	jitted: 117
	        58.2%
	harden: 114
	        56.7%
#153 ALU_AND_K: 0xffffffff & 0xffffffff = 0xffffffff
	interp: 240
	jitted: 72
	        30.0%
	harden: 138
	        57.5%
#154 ALU64_AND_K: 3 & 2 = 2
	interp: 209
	jitted: 72
	        34.4%
	harden: 110
	        52.6%
#155 ALU64_AND_K: 0xffffffff & 0xffffffff = 0xffffffff
	interp: 319
	jitted: 70
	        21.9%
	harden: 148
	        46.4%
#156 ALU64_AND_K: 0x0000ffffffff0000 & 0x0 = 0x0000ffff00000000
	interp: 384
	jitted: 99
	        25.8%
	harden: 206
	        53.6%
#157 ALU64_AND_K: 0x0000ffffffff0000 & -1 = 0x0000ffffffffffff
	interp: 367
	jitted: 97
	        26.4%
	harden: 176
	        48.0%
#158 ALU64_AND_K: 0xffffffffffffffff & -1 = 0xffffffffffffffff
	interp: 375
	jitted: 86
	        22.9%
	harden: 271
	        72.3%
#159 ALU_OR_X: 1 | 2 = 3
	interp: 271
	jitted: 73
	        26.9%
	harden: 108
	        39.9%
#160 ALU_OR_X: 0x0 | 0xffffffff = 0xffffffff
	interp: 280
	jitted: 72
	        25.7%
	harden: 118
	        42.1%
#161 ALU64_OR_X: 1 | 2 = 3
	interp: 253
	jitted: 89
	        35.2%
	harden: 103
	        40.7%
#162 ALU64_OR_X: 0 | 0xffffffff = 0xffffffff
	interp: 263
	jitted: 91
	        34.6%
	harden: 143
	        54.4%
#163 ALU_OR_K: 1 | 2 = 3
	interp: 216
	jitted: 71
	        32.9%
	harden: 123
	        56.9%
#164 ALU_OR_K: 0 & 0xffffffff = 0xffffffff
	interp: 187
	jitted: 116
	        62.0%
	harden: 110
	        58.8%
#165 ALU64_OR_K: 1 | 2 = 3
	interp: 183
	jitted: 77
	        42.1%
	harden: 120
	        65.6%
#166 ALU64_OR_K: 0 & 0xffffffff = 0xffffffff
	interp: 195
	jitted: 80
	        41.0%
	harden: 119
	        61.0%
#167 ALU64_OR_K: 0x0000ffffffff0000 | 0x0 = 0x0000ffff00000000
	interp: 338
	jitted: 86
	        25.4%
	harden: 212
	        62.7%
#168 ALU64_OR_K: 0x0000ffffffff0000 | -1 = 0xffffffffffffffff
	interp: 324
	jitted: 99
	        30.6%
	harden: 221
	        68.2%
#169 ALU64_OR_K: 0x000000000000000 | -1 = 0xffffffffffffffff
	interp: 309
	jitted: 147
	        47.6%
	harden: 198
	        64.1%
#170 ALU_XOR_X: 5 ^ 6 = 3
	interp: 216
	jitted: 80
	        37.0%
	harden: 138
	        63.9%
#171 ALU_XOR_X: 0x1 ^ 0xffffffff = 0xfffffffe
	interp: 414
	jitted: 73
	        17.6%
	harden: 130
	        31.4%
#172 ALU64_XOR_X: 5 ^ 6 = 3
	interp: 320
	jitted: 71
	        22.2%
	harden: 114
	        35.6%
#173 ALU64_XOR_X: 1 ^ 0xffffffff = 0xfffffffe
	interp: 223
	jitted: 72
	        32.3%
	harden: 106
	        47.5%
#174 ALU_XOR_K: 5 ^ 6 = 3
	interp: 203
	jitted: 71
	        35.0%
	harden: 112
	        55.2%
#175 ALU_XOR_K: 1 ^ 0xffffffff = 0xfffffffe
	interp: 205
	jitted: 67
	        32.7%
	harden: 116
	        56.6%
#176 ALU64_XOR_K: 5 ^ 6 = 3
	interp: 205
	jitted: 70
	        34.1%
	harden: 114
	        55.6%
#177 ALU64_XOR_K: 1 & 0xffffffff = 0xfffffffe
	interp: 186
	jitted: 104
	        55.9%
	harden: 112
	        60.2%
#178 ALU64_XOR_K: 0x0000ffffffff0000 ^ 0x0 = 0x0000ffffffff0000
	interp: 352
	jitted: 96
	        27.3%
	harden: 201
	        57.1%
#179 ALU64_XOR_K: 0x0000ffffffff0000 ^ -1 = 0xffff00000000ffff
	interp: 353
	jitted: 119
	        33.7%
	harden: 242
	        68.6%
#180 ALU64_XOR_K: 0x000000000000000 ^ -1 = 0xffffffffffffffff
	interp: 362
	jitted: 116
	        32.0%
	harden: 208
	        57.5%
#181 ALU_LSH_X: 1 << 1 = 2
	interp: 211
	jitted: 100
	        47.4%
	harden: 112
	        53.1%
#182 ALU_LSH_X: 1 << 31 = 0x80000000
	interp: 216
	jitted: 73
	        33.8%
	harden: 137
	        63.4%
#183 ALU64_LSH_X: 1 << 1 = 2
	interp: 224
	jitted: 119
	        53.1%
	harden: 163
	        72.8%
#184 ALU64_LSH_X: 1 << 31 = 0x80000000
	interp: 223
	jitted: 110
	        49.3%
	harden: 145
	        65.0%
#185 ALU_LSH_K: 1 << 1 = 2
	interp: 208
	jitted: 147
	        70.7%
	harden: 92
	        44.2%
#186 ALU_LSH_K: 1 << 31 = 0x80000000
	interp: 210
	jitted: 116
	        55.2%
	harden: 94
	        44.8%
#187 ALU64_LSH_K: 1 << 1 = 2
	interp: 211
	jitted: 154
	        73.0%
	harden: 94
	        44.5%
#188 ALU64_LSH_K: 1 << 31 = 0x80000000
	interp: 182
	jitted: 92
	        50.5%
	harden: 127
	        69.8%
#189 ALU_RSH_X: 2 >> 1 = 1
	interp: 226
	jitted: 86
	        38.1%
	harden: 135
	        59.7%
#190 ALU_RSH_X: 0x80000000 >> 31 = 1
	interp: 225
	jitted: 148
	        65.8%
	harden: 109
	        48.4%
#191 ALU64_RSH_X: 2 >> 1 = 1
	interp: 289
	jitted: 108
	        37.4%
	harden: 123
	        42.6%
#192 ALU64_RSH_X: 0x80000000 >> 31 = 1
	interp: 253
	jitted: 96
	        37.9%
	harden: 117
	        46.2%
#193 ALU_RSH_K: 2 >> 1 = 1
	interp: 207
	jitted: 68
	        32.9%
	harden: 95
	        45.9%
#194 ALU_RSH_K: 0x80000000 >> 31 = 1
	interp: 210
	jitted: 74
	        35.2%
	harden: 103
	        49.0%
#195 ALU64_RSH_K: 2 >> 1 = 1
	interp: 232
	jitted: 66
	        28.4%
	harden: 124
	        53.4%
#196 ALU64_RSH_K: 0x80000000 >> 31 = 1
	interp: 208
	jitted: 95
	        45.7%
	harden: 107
	        51.4%
#197 ALU_ARSH_X: 0xff00ff0000000000 >> 40 = 0xffffffffffff00ff
	interp: 252
	jitted: 74
	        29.4%
	harden: 125
	        49.6%
#198 ALU_ARSH_K: 0xff00ff0000000000 >> 40 = 0xffffffffffff00ff
	interp: 197
	jitted: 96
	        48.7%
	harden: 105
	        53.3%
#199 ALU_NEG: -(3) = -3
	interp: 189
	jitted: 84
	        44.4%
	harden: 76
	        40.2%
#200 ALU_NEG: -(-3) = 3
	interp: 171
	jitted: 72
	        42.1%
	harden: 106
	        62.0%
#201 ALU64_NEG: -(3) = -3
	interp: 179
	jitted: 74
	        41.3%
	harden: 104
	        58.1%
#202 ALU64_NEG: -(-3) = 3
	interp: 180
	jitted: 68
	        37.8%
	harden: 135
	        75.0%
#203 ALU_END_FROM_BE 16: 0x0123456789abcdef -> 0xcdef
	interp: 202
	jitted: 74
	        36.6%
	harden: 115
	        56.9%
#204 ALU_END_FROM_BE 32: 0x0123456789abcdef -> 0x89abcdef
	interp: 368
	jitted: 101
	        27.4%
	harden: 101
	        27.4%
#205 ALU_END_FROM_BE 64: 0x0123456789abcdef -> 0x89abcdef
	interp: 244
	jitted: 93
	        38.1%
	harden: 103
	        42.2%
#206 ALU_END_FROM_LE 16: 0x0123456789abcdef -> 0xefcd
	interp: 274
	jitted: 73
	        26.6%
	harden: 107
	        39.1%
#207 ALU_END_FROM_LE 32: 0x0123456789abcdef -> 0xefcdab89
	interp: 319
	jitted: 76
	        23.8%
	harden: 93
	        29.2%
#208 ALU_END_FROM_LE 64: 0x0123456789abcdef -> 0x67452301
	interp: 193
	jitted: 78
	        40.4%
	harden: 108
	        56.0%
#209 ST_MEM_B: Store/Load byte: max negative
	interp: 219
	jitted: 72
	        32.9%
	harden: 168
	        76.7%
#210 ST_MEM_B: Store/Load byte: max positive
	interp: 227
	jitted: 79
	        34.8%
	harden: 105
	        46.3%
#211 STX_MEM_B: Store/Load byte: max negative
	interp: 251
	jitted: 79
	        31.5%
	harden: 140
	        55.8%
#212 ST_MEM_H: Store/Load half word: max negative
	interp: 218
	jitted: 81
	        37.2%
	harden: 98
	        45.0%
#213 ST_MEM_H: Store/Load half word: max positive
	interp: 208
	jitted: 100
	        48.1%
	harden: 109
	        52.4%
#214 STX_MEM_H: Store/Load half word: max negative
	interp: 259
	jitted: 110
	        42.5%
	harden: 134
	        51.7%
#215 ST_MEM_W: Store/Load word: max negative
	interp: 253
	jitted: 75
	        29.6%
	harden: 148
	        58.5%
#216 ST_MEM_W: Store/Load word: max positive
	interp: 244
	jitted: 89
	        36.5%
	harden: 136
	        55.7%
#217 STX_MEM_W: Store/Load word: max negative
	interp: 297
	jitted: 122
	        41.1%
	harden: 205
	        69.0%
#218 ST_MEM_DW: Store/Load double word: max negative
	interp: 257
	jitted: 85
	        33.1%
	harden: 124
	        48.2%
#219 ST_MEM_DW: Store/Load double word: max negative 2
	interp: 392
	jitted: 123
	        31.4%
	harden: 222
	        56.6%
#220 ST_MEM_DW: Store/Load double word: max positive
	interp: 292
	jitted: 78
	        26.7%
	harden: 110
	        37.7%
#221 STX_MEM_DW: Store/Load double word: max negative
	interp: 259
	jitted: 85
	        32.8%
	harden: 194
	        74.9%
#230 JMP_EXIT
	interp: 127
	jitted: 82
	        64.6%
	harden: 77
	        60.6%
#231 JMP_JA: Unconditional jump: if (true) return 1
	interp: 194
	jitted: 86
	        44.3%
	harden: 84
	        43.3%
#232 JMP_JSGT_K: Signed jump: if (-1 > -2) return 1
	interp: 262
	jitted: 86
	        32.8%
	harden: 128
	        48.9%
#233 JMP_JSGT_K: Signed jump: if (-1 > -1) return 0
	interp: 249
	jitted: 82
	        32.9%
	harden: 126
	        50.6%
#234 JMP_JSGE_K: Signed jump: if (-1 >= -2) return 1
	interp: 262
	jitted: 72
	        27.5%
	harden: 179
	        68.3%
#235 JMP_JSGE_K: Signed jump: if (-1 >= -1) return 1
	interp: 260
	jitted: 73
	        28.1%
	harden: 125
	        48.1%
#236 JMP_JGT_K: if (3 > 2) return 1
	interp: 260
	jitted: 71
	        27.3%
	harden: 142
	        54.6%
#237 JMP_JGT_K: Unsigned jump: if (-1 > 1) return 1
	interp: 278
	jitted: 72
	        25.9%
	harden: 161
	        57.9%
#238 JMP_JGE_K: if (3 >= 2) return 1
	interp: 255
	jitted: 77
	        30.2%
	harden: 163
	        63.9%
#239 JMP_JGT_K: if (3 > 2) return 1 (jump backwards)
	interp: 321
	jitted: 76
	        23.7%
	harden: 143
	        44.5%
#240 JMP_JGE_K: if (3 >= 3) return 1
	interp: 340
	jitted: 74
	        21.8%
	harden: 179
	        52.6%
#241 JMP_JNE_K: if (3 != 2) return 1
	interp: 310
	jitted: 74
	        23.9%
	harden: 144
	        46.5%
#242 JMP_JEQ_K: if (3 == 3) return 1
	interp: 310
	jitted: 78
	        25.2%
	harden: 144
	        46.5%
#243 JMP_JSET_K: if (0x3 & 0x2) return 1
	interp: 276
	jitted: 109
	        39.5%
	harden: 149
	        54.0%
#244 JMP_JSET_K: if (0x3 & 0xffffffff) return 1
	interp: 312
	jitted: 71
	        22.8%
	harden: 153
	        49.0%
#245 JMP_JSGT_X: Signed jump: if (-1 > -2) return 1
	interp: 346
	jitted: 75
	        21.7%
	harden: 162
	        46.8%
#246 JMP_JSGT_X: Signed jump: if (-1 > -1) return 0
	interp: 292
	jitted: 78
	        26.7%
	harden: 162
	        55.5%
#247 JMP_JSGE_X: Signed jump: if (-1 >= -2) return 1
	interp: 318
	jitted: 134
	        42.1%
	harden: 178
	        56.0%
#248 JMP_JSGE_X: Signed jump: if (-1 >= -1) return 1
	interp: 287
	jitted: 102
	        35.5%
	harden: 192
	        66.9%
#249 JMP_JGT_X: if (3 > 2) return 1
	interp: 316
	jitted: 83
	        26.3%
	harden: 205
	        64.9%
#250 JMP_JGT_X: Unsigned jump: if (-1 > 1) return 1
	interp: 400
	jitted: 80
	        20.0%
	harden: 154
	        38.5%
#251 JMP_JGE_X: if (3 >= 2) return 1
	interp: 287
	jitted: 78
	        27.2%
	harden: 177
	        61.7%
#252 JMP_JGE_X: if (3 >= 3) return 1
	interp: 287
	jitted: 116
	        40.4%
	harden: 160
	        55.7%
#253 JMP_JGE_X: ldimm64 test 1
	interp: 323
	jitted: 81
	        25.1%
	harden: 204
	        63.2%
#254 JMP_JGE_X: ldimm64 test 2
	interp: 298
	jitted: 79
	        26.5%
	harden: 201
	        67.4%
#255 JMP_JGE_X: ldimm64 test 3
	interp: 263
	jitted: 78
	        29.7%
	harden: 184
	        70.0%
#256 JMP_JNE_X: if (3 != 2) return 1
	interp: 313
	jitted: 108
	        34.5%
	harden: 168
	        53.7%
#257 JMP_JEQ_X: if (3 == 3) return 1
	interp: 308
	jitted: 102
	        33.1%
	harden: 197
	        64.0%
#258 JMP_JSET_X: if (0x3 & 0x2) return 1
	interp: 359
	jitted: 133
	        37.0%
	harden: 192
	        53.5%
#259 JMP_JSET_X: if (0x3 & 0xffffffff) return 1
	interp: 421
	jitted: 128
	        30.4%
	harden: 181
	        43.0%
#260 JMP_JA: Jump, gap, jump, ...
	interp: 309
	jitted: 108
	        35.0%
	harden: 97
	        31.4%
#261 BPF_MAXINSNS: Maximum possible literals
	interp: 251
	jitted: 111
	        44.2%
	harden: 125
	        49.8%
#262 BPF_MAXINSNS: Single literal
	interp: 286
	jitted: 115
	        40.2%
	harden: 105
	        36.7%
#263 BPF_MAXINSNS: Run/add until end
	interp: 254969
	jitted: 8481
	        3.3%
	harden: 121315
	        47.6%
#265 BPF_MAXINSNS: Very long jump
	interp: 284
	jitted: 123
	        43.3%
	harden: 131
	        46.1%
#266 BPF_MAXINSNS: Ctx heavy transformations
	interp: 548311	560800
	jitted: 28166	29032
	        5.1%	5.2%
	harden: 217030	181848
	        39.6%	32.4%
#268 BPF_MAXINSNS: Jump heavy test
	interp: 480796
	jitted: 132663
	        27.6%
	harden: 440621
	        91.6%
#269 BPF_MAXINSNS: Very long jump backwards
	interp: 193
	jitted: 148
	        76.7%
	harden: 154
	        79.8%
#270 BPF_MAXINSNS: Edge hopping nuthouse
	interp: 114304
	jitted: 277097
	        242.4%
	harden: 302835
	        264.9%
#271 BPF_MAXINSNS: Jump, gap, jump, ...
	interp: 1884
	jitted: 1041
	        55.3%
	harden: 1008
	        53.5%
#274 LD_IND byte frag
	interp: 695
	jitted: 574
	        82.6%
	harden: 1453
	        209.1%
#275 LD_IND halfword frag
	interp: 818
	jitted: 641
	        78.4%
	harden: 600
	        73.3%
#276 LD_IND word frag
	interp: 837
	jitted: 731
	        87.3%
	harden: 719
	        85.9%
#277 LD_IND halfword mixed head/frag
	interp: 1170
	jitted: 741
	        63.3%
	harden: 705
	        60.3%
#278 LD_IND word mixed head/frag
	interp: 950
	jitted: 972
	        102.3%
	harden: 732
	        77.1%
#279 LD_ABS byte frag
	interp: 953
	jitted: 601
	        63.1%
	harden: 683
	        71.7%
#280 LD_ABS halfword frag
	interp: 754
	jitted: 603
	        80.0%
	harden: 595
	        78.9%
#281 LD_ABS word frag
	interp: 1133
	jitted: 688
	        60.7%
	harden: 672
	        59.3%
#282 LD_ABS halfword mixed head/frag
	interp: 1079
	jitted: 657
	        60.9%
	harden: 775
	        71.8%
#283 LD_ABS word mixed head/frag
	interp: 718
	jitted: 748
	        104.2%
	harden: 725
	        101.0%
#284 LD_IND byte default X
	interp: 297
	jitted: 178
	        59.9%
	harden: 274
	        92.3%
#285 LD_IND byte positive offset
	interp: 300
	jitted: 187
	        62.3%
	harden: 302
	        100.7%
#286 LD_IND byte negative offset
	interp: 296
	jitted: 178
	        60.1%
	harden: 311
	        105.1%
#287 LD_IND halfword positive offset
	interp: 333
	jitted: 161
	        48.3%
	harden: 218
	        65.5%
#288 LD_IND halfword negative offset
	interp: 306
	jitted: 195
	        63.7%
	harden: 193
	        63.1%
#289 LD_IND halfword unaligned
	interp: 307
	jitted: 183
	        59.6%
	harden: 190
	        61.9%
#290 LD_IND word positive offset
	interp: 337
	jitted: 170
	        50.4%
	harden: 200
	        59.3%
#291 LD_IND word negative offset
	interp: 312
	jitted: 198
	        63.5%
	harden: 216
	        69.2%
#292 LD_IND word unaligned (addr & 3 == 2)
	interp: 309
	jitted: 281
	        90.9%
	harden: 195
	        63.1%
#293 LD_IND word unaligned (addr & 3 == 1)
	interp: 335
	jitted: 172
	        51.3%
	harden: 196
	        58.5%
#294 LD_IND word unaligned (addr & 3 == 3)
	interp: 305
	jitted: 171
	        56.1%
	harden: 221
	        72.5%
#295 LD_ABS byte
	interp: 269
	jitted: 162
	        60.2%
	harden: 195
	        72.5%
#296 LD_ABS halfword
	interp: 294
	jitted: 160
	        54.4%
	harden: 170
	        57.8%
#297 LD_ABS halfword unaligned
	interp: 271
	jitted: 180
	        66.4%
	harden: 167
	        61.6%
#298 LD_ABS word
	interp: 265
	jitted: 166
	        62.6%
	harden: 182
	        68.7%
#299 LD_ABS word unaligned (addr & 3 == 2)
	interp: 267
	jitted: 157
	        58.8%
	harden: 185
	        69.3%
#300 LD_ABS word unaligned (addr & 3 == 1)
	interp: 269
	jitted: 170
	        63.2%
	harden: 162
	        60.2%
#301 LD_ABS word unaligned (addr & 3 == 3)
	interp: 281
	jitted: 163
	        58.0%
	harden: 231
	        82.2%
#302 ADD default X
	interp: 296
	jitted: 84
	        28.4%
	harden: 105
	        35.5%
#303 ADD default A
	interp: 309
	jitted: 79
	        25.6%
	harden: 101
	        32.7%
#304 SUB default X
	interp: 290
	jitted: 82
	        28.3%
	harden: 106
	        36.6%
#305 SUB default A
	interp: 252
	jitted: 85
	        33.7%
	harden: 119
	        47.2%
#306 MUL default X
	interp: 322
	jitted: 76
	        23.6%
	harden: 131
	        40.7%
#307 MUL default A
	interp: 267
	jitted: 83
	        31.1%
	harden: 116
	        43.4%
#308 DIV default X
	interp: 293
	jitted: 93
	        31.7%
	harden: 116
	        39.6%
#309 DIV default A
	interp: 336
	jitted: 203
	        60.4%
	harden: 227
	        67.6%
#310 MOD default X
	interp: 284
	jitted: 100
	        35.2%
	harden: 98
	        34.5%
#311 MOD default A
	interp: 435
	jitted: 249
	        57.2%
	harden: 265
	        60.9%
#312 JMP EQ default A
	interp: 352
	jitted: 83
	        23.6%
	harden: 134
	        38.1%
#313 JMP EQ default X
	interp: 357
	jitted: 95
	        26.6%
	harden: 108
	        30.3%


More information about the linux-arm-kernel mailing list