From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Borkmann Subject: [PATCH bpf-next v2 00/13] Move ld_abs/ld_ind to native BPF Date: Fri, 4 May 2018 01:08:11 +0200 Message-ID: <20180503230824.3462-1-daniel@iogearbox.net> Cc: netdev@vger.kernel.org, Daniel Borkmann To: ast@kernel.org Return-path: Received: from www62.your-server.de ([213.133.104.62]:53589 "EHLO www62.your-server.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751548AbeECXIh (ORCPT ); Thu, 3 May 2018 19:08:37 -0400 Sender: netdev-owner@vger.kernel.org List-ID: 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 -- 2.9.5