Re: [PATCH bpf-next v1] ARC: Add eBPF JIT support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2/14/24 03:39, Alexei Starovoitov wrote:
> On Tue, Feb 13, 2024 at 5:20 AM Shahab Vahedi <list+bpf@xxxxxxxxxx> wrote:
> 
> Could you share performance numbers interpreter vs JITed ?

I see noticeable improvements on every selected test. To list a few:

---------------8<------------------

test_bpf: #0 TAX jited:0 862 857 857 PASS
test_bpf: #0 TAX jited:1 102 101 101 PASS

test_bpf: #29 JGE (jt 0), test 1 jited:0 750 620 625 PASS
test_bpf: #29 JGE (jt 0), test 1 jited:1 124  72  72 PASS

test_bpf: #33 tcpdump port 22 jited:0 704 1766 2104 PASS
test_bpf: #33 tcpdump port 22 jited:1 120  224  260 PASS

test_bpf: #128 ALU64_MUL_X: 64x64 multiply, high word jited:0 267 PASS
test_bpf: #128 ALU64_MUL_X: 64x64 multiply, high word jited:1  29 PASS

test_bpf: #141 ALU_DIV_X: 4294967295 / 4294967295 = 1 jited:0 238 PASS
test_bpf: #141 ALU_DIV_X: 4294967295 / 4294967295 = 1 jited:1  23 PASS

test_bpf: #288 ALU_END_FROM_LE 32: ... -> 0xefcdab89 jited:0 297 PASS
test_bpf: #288 ALU_END_FROM_LE 32: ... -> 0xefcdab89 jited:1  24 PASS

test_bpf: #319 BPF_LDX_MEM | BPF_W, unaligned positive offset jited:0 313 PASS
test_bpf: #319 BPF_LDX_MEM | BPF_W, unaligned positive offset jited:1  26 PASS

test_bpf: #444 BPF_MAXINSNS: Run/add until end jited:0 82358 PASS
test_bpf: #444 BPF_MAXINSNS: Run/add until end jited:1  8328 PASS

test_bpf: #697 ALU64_ARSH_K: all shift values jited:0 48240 PASS
test_bpf: #697 ALU64_ARSH_K: all shift values jited:1  3417 PASS

test_bpf: #776 JMP32_JGE_K: all immediate value magnitudes jited:0 2034681 PASS
test_bpf: #776 JMP32_JGE_K: all immediate value magnitudes jited:1 1020022 PASS

---------------8<------------------

The complete results are attached for reference. They can be retrieved by
uudecode(1).

begin 644 arc_bpf_jit_res.tgz
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
M0"P[3X0@Y@xxxxx"4.#!$80"$)5::`)1,.X$0P-K`$3=Z,):`E$PX$,0#D#4
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
ML'4.Q\;F5>PSN9_,"C2!TF/D[W(P;HP%VS9&"QJ<M1"L5<J@xxxxxx(7@BD_
MD04+L4:/D>O+P:1S!JU4Z"A&<JEFK='@4H[1AD;"+2XF4VCTH.W8KJI4LV#E
MU.@X(G@QF@R2,S1#TI'4H"D&ML2,B>.!%Z-QM,]M3'1JJ+R1.FTY.'=K#,W2
M5M'F6Z[ALH29I'(K5:]5`HU-QD1,=?ZW]31!/;Z9I/`J+V[;HHYPS-]4Y8']
M9$2`C7XS9G2J\\">>@Q$.S0TR5.5?I:UR&V21%!5]G.&.;1H/\L-58S'T;D8
M0]-%5>FGA`$[KX:DE*KLPUKHI\8L4U6]6-L*.)JP-/=A^:S$\1:%7S)6D\96
M`6>Y0+,`&Z6\*X=3$GH^2]/BU6BG!3C"8ZPC3:T"3CIT1,>XEK:T&O5LBZK6
M,=K2*JC"K55@ENCB1&H58Q[7(C_OHF1K-;7+#)I@NTE6E?/SYD'3-O>^\S.[
M$`'[9O7S^H*<&P$(T2QB%P`=I=D9`59GOZX^7T\1@#MS<=Z?#F$(EE^EBXV2
M[`"D<J6F?4"/9I;TFCM8VTX[@`[L7OO)_VKS)'4#MT=M._7_$*Y8N:GW1R4M
MUTW0^<;)]8V'"E<OJC#&>7(1!BQ5E+EB1XPA-]!M0(:40+<!L73B%6$45_.8
MSZH(8MZ\[)##ZA80),O@SAA#;I];8(CF\,/E58AO>+9->;W)@--%&7Q`,BG-
MO;AE,BO,\L(J*\SSPCHK+/+")BLL\\*V.;Q9O7^_OMIF"[J^O\U.,IZO\9-I
M<$K#AKB'4#3,G<A<AJ-SGC8$0H328:8T2@LN0'!./WM+2&]Z3"+NQR>@U-X2
M6/PQE69<.09V<?P(+R6^'XEKI\"Q/\ME0OP@^KIDQH`\\F&M*B$>?5VT#ITL
ML7YPFC#=I/",2W`4P'*3E(^^[RT7<H+/Y5.,.SR8?%\(L",79A(I^=CZJA7@
M6)H5*>)%B=EUV$H%52]2Q(N2GFL_(Y/ST4?884S3EH@K+<&%7"N2O*/2CCL)
M+IQ8D:)=E/'8&<W!.7@KDJR+OBVT1I4N4J2+,@0[:5%.%2O2E(L+[GME]/$D
MXZ*2>[Z;,&Z>RZ<9]RJ6=PZY.IEB7)P?V<OK$/]\+H\YUR]3C8Z:6P'6%:S$
MK.N7I4;YUC`)S"\Q[89EMW%?R1JT>6,E9EZ_D#4JX(L/-I*MQ-SK%ZZ(?-NB
M9B<Q^_J%JD'>]X8<S(ZMQ/SK5Z8&><6%!6<2K,0$'&8A(T!KT/$K*S$#AYG'
M"*"\UP=N2V$*#G.-T81.:K#6956:@['?#1J@@89*DS!RO)[!Z#1QF,9G2$SD
M%9/@^(!5:0[&SE?XT1@X$VM5AH21O.]WP,S3JC0)(S<D7.O`OJ!5&1).OF_!
MG0>KTB2,W)"O``-6$ZW*<3!20!L)%C5"R\B1F%K`P6:H<QR,36`MN"9E=9J#
ML2N6K3;S<!:''\_/5U>?[S=V>V1[?^_KIFT>/7QR$/[T9]](O@T-Y8]/7OW'
M^N0OO_GB[KE[[IZ[Y^ZY>^Z>N^?NN7ONGKOG[KE[[IZ[Y^ZY>^Z>N^?NN7ON
8GKOG[KE[[IZ[Y^[Y/_G\?\.<'?\`X`$`
`
end





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux