[PATCH] RFC: arm: eBPF JIT compiler

Andrew Lunn andrew at lunn.ch
Thu May 25 10:22:55 PDT 2017


On Thu, May 25, 2017 at 07:00:51PM +0200, Andrew Lunn wrote:
> On Thu, May 25, 2017 at 02:01:36AM +0530, Shubham Bansal wrote:
> > Hi Andrew,
> > 
> > I am attaching the latest patch which should work on ARMv5 , ARMv6 and ARMv7.
> > 
> > Please test on your machines. Apologies for the last patch. This patch
> > should work though.
> 
> andrew at shuttle:~/linux$ make -s -j 16
> arch/arm/net/bpf_jit_32.c:1755:12: warning: ‘validate_code’ defined but not used [-Wunused-function]
>  static int validate_code(struct jit_ctx *ctx)
>             ^~~~~~~~~~~~~
> arch/arm/net/bpf_jit_32.c:1724:12: warning: ‘build_body’ defined but not used [-Wunused-function]
>  static int build_body(struct jit_ctx *ctx)
>             ^~~~~~~~~~
> arch/arm/net/bpf_jit_32.c:1122:13: warning: ‘build_epilogue’ defined but not used [-Wunused-function]
>  static void build_epilogue(struct jit_ctx *ctx)
>              ^~~~~~~~~~~~~~
> arch/arm/net/bpf_jit_32.c:1049:13: warning: ‘build_prologue’ defined but not used [-Wunused-function]
>  static void build_prologue(struct jit_ctx *ctx)
>              ^~~~~~~~~~~~~~
> arch/arm/net/bpf_jit_32.c:174:13: warning: ‘jit_fill_hole’ defined but not used [-Wunused-function]
>  static void jit_fill_hole(void *area, unsigned int size)
>              ^~~~~~~~~~~~~
> 
> I _think_ this is because CONFIG_CPU_LITTLE_ENDIAN is not set. But it
> is a little endian machine/configuration. ARM does not seem to use
> CONFIG_CPU_LITTLE_ENDIAN, it just has CPU_BIG_ENDIAN.

After removing the #ifdef:

test_bpf: Summary: 314 PASSED, 0 FAILED, [272/306 JIT'ed]

Each test prints:

ARM version : 5
ARM version : 5

So the code needs some cleanup, but seems to basically work.

   Andrew



More information about the linux-arm-kernel mailing list