From: Alexei Starovoitov <alexei.starovoi...@gmail.com> Date: Mon, 18 Dec 2017 22:28:30 -0800
> On Mon, Dec 18, 2017 at 10:51:53AM -0500, David Miller wrote: >> From: Daniel Borkmann <dan...@iogearbox.net> >> Date: Mon, 18 Dec 2017 01:33:07 +0100 >> >> > The following pull-request contains BPF updates for your *net-next* tree. >> > >> > The main changes are: >> > >> > 1) Allow arbitrary function calls from one BPF function to another BPF >> > function. >> > As of today when writing BPF programs, __always_inline had to be used in >> > the BPF C programs for all functions, unnecessarily causing LLVM to >> > inflate >> > code size. Handle this more naturally with support for BPF to BPF calls >> > such that this __always_inline restriction can be overcome. As a result, >> > it allows for better optimized code and finally enables to introduce >> > core >> > BPF libraries in the future that can be reused out of different >> > projects. >> > x86 and arm64 JIT support was added as well, from Alexei. >> >> Exciting... but now there's a lot of JIT work to do. > > I've looked at sparc64. It should be simpler than arm64. > First reaction was that it would need dumb version of > emit_loadimm64() (similar to arm's emit_addr_mov_i64), but not, > since it's not used in emit_call. > I can take a stab at it, but cannot test. The most time > consuming part is to setup the latest llvm on the system > to compile *_noinline.c tests. > Note to self, I really need to make test_verifier run the tests. I think I understand how this new stuff works, I'll take a stab at doing the sparc64 JIT bits.