Commit 44ef976a authored by David S. Miller's avatar David S. Miller
Browse files


Daniel Borkmann says:

====================
pull-request: bpf-next 2020-03-13

The following pull-request contains BPF updates for your *net-next* tree.

We've added 86 non-merge commits during the last 12 day(s) which contain
a total of 107 files changed, 5771 insertions(+), 1700 deletions(-).

The main changes are:

1) Add modify_return attach type which allows to attach to a function via
   BPF trampoline and is run after the fentry and before the fexit programs
   and can pass a return code to the original caller, from KP Singh.

2) Generalize BPF's kallsyms handling and add BPF trampoline and dispatcher
   objects to be visible in /proc/kallsyms so they can be annotated in
   stack traces, from Jiri Olsa.

3) Extend BPF sockmap to allow for UDP next to existing TCP support in order
   in order to enable this for BPF based socket dispatch, from Lorenz Bauer.

4) Introduce a new bpftool 'prog profile' command which attaches to existing
   BPF programs via fentry and fexit hooks and reads out hardware counters
   during that period, from Song Liu. Example usage:

   bpftool prog profile id 337 duration 3 cycles instructions llc_misses

        4228 run_cnt
     3403698 cycles                                              (84.08%)
     3525294 instructions   #  1.04 insn per cycle               (84.05%)
          13 llc_misses     #  3.69 LLC misses per million isns  (83.50%)

5) Batch of improvements to libbpf, bpftool and BPF selftests. Also addition
   of a new bpf_link abstraction to keep in particular BPF tracing programs
   attached even when the applicaion owning them exits, from Andrii Nakryiko.

6) New bpf_get_current_pid_tgid() helper for tracing to perform PID filtering
   and which returns the PID as seen by the init namespace, from Carlos Neira.

7) Refactor of RISC-V JIT code to move out common pieces and addition of a
   new RV32G BPF JIT compiler, from Luke Nelson.

8) Add gso_size context member to __sk_buff in order to be able to know whether
   a given skb is GSO or not, from Willem de Bruijn.

9) Add a new bpf_xdp_output() helper which reuses XDP's existing perf RB output
   implementation but can be called from tracepoint programs, from Eelco Chaudron.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 48f5d5cb 832165d2
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -67,7 +67,8 @@ two flavors of JITs, the newer eBPF JIT currently supported on:
  - sparc64
  - mips64
  - s390x
  - riscv
  - riscv64
  - riscv32

And the older cBPF JIT supported on the following archs:

+1 −1
Original line number Diff line number Diff line
@@ -606,7 +606,7 @@ before a conversion to the new layout is being done behind the scenes!

Currently, the classic BPF format is being used for JITing on most
32-bit architectures, whereas x86-64, aarch64, s390x, powerpc64,
sparc64, arm32, riscv (RV64G) perform JIT compilation from eBPF
sparc64, arm32, riscv64, riscv32 perform JIT compilation from eBPF
instruction set.

Some core changes of the new internal format:
+15 −1
Original line number Diff line number Diff line
@@ -3213,11 +3213,22 @@ L: bpf@vger.kernel.org
S:	Maintained
F:	arch/powerpc/net/
BPF JIT for RISC-V (RV64G)
BPF JIT for RISC-V (32-bit)
M:	Luke Nelson <luke.r.nels@gmail.com>
M:	Xi Wang <xi.wang@gmail.com>
L:	netdev@vger.kernel.org
L:	bpf@vger.kernel.org
S:	Maintained
F:	arch/riscv/net/
X:	arch/riscv/net/bpf_jit_comp64.c
BPF JIT for RISC-V (64-bit)
M:	Björn Töpel <bjorn.topel@gmail.com>
L:	netdev@vger.kernel.org
L:	bpf@vger.kernel.org
S:	Maintained
F:	arch/riscv/net/
X:	arch/riscv/net/bpf_jit_comp32.c
BPF JIT for S390
M:	Ilya Leoshkevich <iii@linux.ibm.com>
@@ -9350,6 +9361,8 @@ F: include/net/l3mdev.h
L7 BPF FRAMEWORK
M:	John Fastabend <john.fastabend@gmail.com>
M:	Daniel Borkmann <daniel@iogearbox.net>
M:	Jakub Sitnicki <jakub@cloudflare.com>
M:	Lorenz Bauer <lmb@cloudflare.com>
L:	netdev@vger.kernel.org
L:	bpf@vger.kernel.org
S:	Maintained
@@ -9357,6 +9370,7 @@ F: include/linux/skmsg.h
F:	net/core/skmsg.c
F:	net/core/sock_map.c
F:	net/ipv4/tcp_bpf.c
F:	net/ipv4/udp_bpf.c
LANTIQ / INTEL Ethernet drivers
M:	Hauke Mehrtens <hauke@hauke-m.de>
+1 −1
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@ config RISCV
	select ARCH_HAS_PTE_SPECIAL
	select ARCH_HAS_MMIOWB
	select ARCH_HAS_DEBUG_VIRTUAL
	select HAVE_EBPF_JIT if 64BIT
	select HAVE_EBPF_JIT
	select EDAC_SUPPORT
	select ARCH_HAS_GIGANTIC_PAGE
	select ARCH_WANT_HUGE_PMD_SHARE if 64BIT
+8 −1
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only
obj-$(CONFIG_BPF_JIT) += bpf_jit_comp.o

obj-$(CONFIG_BPF_JIT) += bpf_jit_core.o

ifeq ($(CONFIG_ARCH_RV64I),y)
	obj-$(CONFIG_BPF_JIT) += bpf_jit_comp64.o
else
	obj-$(CONFIG_BPF_JIT) += bpf_jit_comp32.o
endif
Loading