mbox series

[bpf-next,v2,00/13] Move ld_abs/ld_ind to native BPF

Message ID 20180503230824.3462-1-daniel@iogearbox.net
Headers show
Series Move ld_abs/ld_ind to native BPF | expand

Message

Daniel Borkmann May 3, 2018, 11:08 p.m. UTC
This set simplifies BPF JITs significantly by moving ld_abs/ld_ind
to native BPF, for details see individual patches. Main rationale
is in patch 'implement ld_abs/ld_ind in native bpf'. Thanks!

v1 -> v2:
  - Added missing seen_lds_abs in LDX_MSH and use X = A
    initially due to being preserved on func call.
  - Added a large batch of cBPF tests into test_bpf.
  - Added x32 removal of LD_ABS/LD_IND, so all JITs are
    covered.

Daniel Borkmann (13):
  bpf: prefix cbpf internal helpers with bpf_
  bpf: migrate ebpf ld_abs/ld_ind tests to test_verifier
  bpf: implement ld_abs/ld_ind in native bpf
  bpf: add skb_load_bytes_relative helper
  bpf, x64: remove ld_abs/ld_ind
  bpf, arm64: remove ld_abs/ld_ind
  bpf, sparc64: remove ld_abs/ld_ind
  bpf, arm32: remove ld_abs/ld_ind
  bpf, mips64: remove ld_abs/ld_ind
  bpf, ppc64: remove ld_abs/ld_ind
  bpf, s390x: remove ld_abs/ld_ind
  bpf, x32: remove ld_abs/ld_ind
  bpf: sync tools bpf.h uapi header

 arch/arm/net/bpf_jit_32.c                   |  77 ----
 arch/arm64/net/bpf_jit_comp.c               |  65 ----
 arch/mips/net/ebpf_jit.c                    | 104 -----
 arch/powerpc/net/Makefile                   |   2 +-
 arch/powerpc/net/bpf_jit64.h                |  37 +-
 arch/powerpc/net/bpf_jit_asm64.S            | 180 ---------
 arch/powerpc/net/bpf_jit_comp64.c           | 109 +-----
 arch/s390/net/Makefile                      |   2 +-
 arch/s390/net/bpf_jit.S                     | 116 ------
 arch/s390/net/bpf_jit.h                     |  20 +-
 arch/s390/net/bpf_jit_comp.c                | 127 +------
 arch/sparc/net/Makefile                     |   5 +-
 arch/sparc/net/bpf_jit_64.h                 |  29 --
 arch/sparc/net/bpf_jit_asm_64.S             | 162 --------
 arch/sparc/net/bpf_jit_comp_64.c            |  79 +---
 arch/x86/net/Makefile                       |   3 +-
 arch/x86/net/bpf_jit.S                      | 154 --------
 arch/x86/net/bpf_jit_comp.c                 | 144 +------
 arch/x86/net/bpf_jit_comp32.c               | 136 +------
 include/linux/bpf.h                         |   4 +-
 include/linux/filter.h                      |   4 +-
 include/uapi/linux/bpf.h                    |  33 +-
 kernel/bpf/core.c                           |  96 +----
 kernel/bpf/verifier.c                       |  24 ++
 lib/test_bpf.c                              | 570 +++++++++++++++++-----------
 net/core/filter.c                           | 305 +++++++++++++--
 tools/include/uapi/linux/bpf.h              |  33 +-
 tools/testing/selftests/bpf/test_verifier.c | 266 ++++++++++++-
 28 files changed, 1035 insertions(+), 1851 deletions(-)
 delete mode 100644 arch/powerpc/net/bpf_jit_asm64.S
 delete mode 100644 arch/s390/net/bpf_jit.S
 delete mode 100644 arch/sparc/net/bpf_jit_asm_64.S
 delete mode 100644 arch/x86/net/bpf_jit.S

Comments

Alexei Starovoitov May 4, 2018, 12:02 a.m. UTC | #1
On Fri, May 04, 2018 at 01:08:11AM +0200, Daniel Borkmann wrote:
> This set simplifies BPF JITs significantly by moving ld_abs/ld_ind
> to native BPF, for details see individual patches. Main rationale
> is in patch 'implement ld_abs/ld_ind in native bpf'. Thanks!
> 
> v1 -> v2:
>   - Added missing seen_lds_abs in LDX_MSH and use X = A
>     initially due to being preserved on func call.
>   - Added a large batch of cBPF tests into test_bpf.
>   - Added x32 removal of LD_ABS/LD_IND, so all JITs are
>     covered.

Applied to bpf-next, Thanks Daniel.