Re: [PATCH net-next v3] arm: eBPF JIT compiler

2017-08-20 Thread Shubham Bansal
> With the below #ifdef __LITTLE_ENDIAN spanning the entire > bpf_int_jit_compile(), a user can then enable and compile > eBPF JIT for big endian, even set the bpf_jit_enable to 1 > to turn it on, but it won't JIT anything, which is contrary > to the expectation. > > This should rather be a hard de

Re: [PATCH net-next v3] arm: eBPF JIT compiler

2017-08-20 Thread Daniel Borkmann
On 08/19/2017 11:20 AM, Shubham Bansal wrote: [...] diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 61a0cb1..cc31f8b 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -50,7 +50,7 @@ config ARM select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT) select HAVE_ARCH

Re: [PATCH net-next v3] arm: eBPF JIT compiler

2017-08-20 Thread Shubham Bansal
> Acked-by: Alexei Starovoitov David, Russell, Kees and Daniel, Anything from your side? Is this patch ready to land in net-next?

Re: [PATCH net-next v3] arm: eBPF JIT compiler

2017-08-19 Thread Alexei Starovoitov
On 8/19/17 2:46 PM, Shubham Bansal wrote: test_pkt_access:PASS:ipv4 271 nsec test_pkt_access:PASS:ipv6 297 nsec test_xdp:PASS:ipv4 961517 nsec <--- Here is the difference. test_xdp:PASS:ipv6 615855 nsec <--- Here is the difference. yes. this is expected. These two numbers are single run

Re: [PATCH net-next v3] arm: eBPF JIT compiler

2017-08-19 Thread Shubham Bansal
Qemu is giving me different numbers different time. Another stats. With bpf_jit_enable set test_pkt_access:PASS:ipv4 271 nsec test_pkt_access:PASS:ipv6 297 nsec test_xdp:PASS:ipv4 961517 nsec <--- Here is the difference. test_xdp:PASS:ipv6 615855 nsec <--- Here is the difference. test_l4l

Re: [PATCH net-next v3] arm: eBPF JIT compiler

2017-08-19 Thread Shubham Bansal
Here are numbers. Without any JIT enabled test_pkt_access:PASS:ipv4 1823 nsec test_pkt_access:PASS:ipv6 1743 nsec test_xdp:PASS:ipv4 769022 nsec test_xdp:PASS:ipv6 15408 nsec test_l4lb:PASS:ipv4 12441 nsec test_l4lb:PASS:ipv6 18131 nsec test_tcp_estats:PASS: 0 nsec test_bpf_obj_id:PASS:get-fd-by-

Re: [PATCH net-next v3] arm: eBPF JIT compiler

2017-08-19 Thread Alexei Starovoitov
On 8/19/17 12:59 PM, Shubham Bansal wrote: not be able to compare them like kees this week. Does that sound good? yeah. that's fine. I was more interested in selftests/.../test_progs numbers before/after, since they're more representative of real world performance vs test_bpf.ko Thats right.

Re: [PATCH net-next v3] arm: eBPF JIT compiler

2017-08-19 Thread Shubham Bansal
One more thing I forgot to mention. I think this is the first implementation of eBPF JIT on any 32 bit arch, correct me if I am wrong. I think we can use this as a POC to implement eBPF on other 32 bit arch as well like x86, depends on its need I guess.

Re: [PATCH net-next v3] arm: eBPF JIT compiler

2017-08-19 Thread Shubham Bansal
> impressive work. > Acked-by: Alexei Starovoitov Thanks :) I can't take all the credit. It was Daniel and Kees who helped me a lot. I would have given up a long time ago without them. > > Any performance numbers with vs without JIT ? Here is the mail from Kees on v1 of the patch. For what it'

Re: [PATCH net-next v3] arm: eBPF JIT compiler

2017-08-19 Thread Alexei Starovoitov
On 8/19/17 2:20 AM, Shubham Bansal wrote: The JIT compiler emits ARM 32 bit instructions. Currently, It supports eBPF only. Classic BPF is supported because of the conversion by BPF core. This patch is essentially changing the current implementation of JIT compiler of Berkeley Packet Filter from

[PATCH net-next v3] arm: eBPF JIT compiler

2017-08-19 Thread Shubham Bansal
The JIT compiler emits ARM 32 bit instructions. Currently, It supports eBPF only. Classic BPF is supported because of the conversion by BPF core. This patch is essentially changing the current implementation of JIT compiler of Berkeley Packet Filter from classic to internal with almost all instruc