Hi David, The following pull-request contains BPF updates for your *net-next* tree.
The main changes are: 1) Add sharing of BPF objects within one ASIC: this allows for reuse of the same program on multiple ports of a device, and therefore gains better code store utilization. On top of that, this now also enables sharing of maps between programs attached to different ports of a device, from Jakub. 2) Cleanup in libbpf and bpftool's Makefile to reduce unneeded feature detections and unused variable exports, also from Jakub. 3) First batch of RCU annotation fixes in prog array handling, i.e. there are several __rcu markers which are not correct as well as some of the RCU handling, from Roman. 4) Two fixes in BPF sample files related to checking of the prog_cnt upper limit from sample loader, from Dan. 5) Minor cleanup in sockmap to remove a set but not used variable, from Colin. Please consider pulling these changes from: git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git Thanks a lot! ---------------------------------------------------------------- The following changes since commit 301f935be9e09a1bf188bd8262a4db0aeeac2b50: sch_cake: Fix tin order when set through skb->priority (2018-07-16 14:47:45 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git for you to fetch changes up to 8ae71e76cf1f7b8de5c75356a00840e54c93e7a5: Merge branch 'bpf-offload-sharing' (2018-07-18 15:11:23 +0200) ---------------------------------------------------------------- Colin Ian King (1): bpf: sockmap: remove redundant pointer sg Dan Carpenter (2): samples: bpf: ensure that we don't load over MAX_PROGS programs samples/bpf: test_cgrp2_sock2: fix an off by one Daniel Borkmann (1): Merge branch 'bpf-offload-sharing' Jakub Kicinski (13): tools: libbpf: remove libelf-getphdrnum feature detection tools: bpftool: don't pass FEATURES_DUMP to libbpf netdevsim: add switch_id attribute netdevsim: add shared netdevsim devices netdevsim: associate bound programs with shared dev nfp: add .ndo_init() and .ndo_uninit() callbacks bpf: offload: rename bpf_offload_dev_match() to bpf_offload_prog_map_match() bpf: offload: aggregate offloads per-device bpf: offload: keep the offload state per-ASIC bpf: offload: allow program and map sharing per-ASIC netdevsim: allow program sharing between devices nfp: bpf: allow program sharing within ASIC selftests/bpf: add test for sharing objects between netdevs Roman Gushchin (2): bpf: bpf_prog_array_alloc() should return a generic non-rcu pointer bpf: fix rcu annotations in compute_effective_progs() drivers/net/ethernet/netronome/nfp/bpf/main.c | 23 +++ drivers/net/ethernet/netronome/nfp/bpf/main.h | 4 + drivers/net/ethernet/netronome/nfp/bpf/offload.c | 10 +- drivers/net/ethernet/netronome/nfp/nfp_app.c | 17 ++ drivers/net/ethernet/netronome/nfp/nfp_app.h | 8 + .../net/ethernet/netronome/nfp/nfp_net_common.c | 2 + drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 2 + drivers/net/netdevsim/bpf.c | 50 +++-- drivers/net/netdevsim/netdev.c | 103 +++++++++- drivers/net/netdevsim/netdevsim.h | 23 ++- include/linux/bpf.h | 13 +- kernel/bpf/cgroup.c | 7 +- kernel/bpf/core.c | 2 +- kernel/bpf/offload.c | 223 ++++++++++++++++----- kernel/bpf/sockmap.c | 3 - kernel/bpf/verifier.c | 2 +- samples/bpf/bpf_load.c | 3 + samples/bpf/test_cgrp2_sock2.c | 2 +- tools/bpf/bpftool/Makefile | 2 +- tools/lib/bpf/Makefile | 6 +- tools/testing/selftests/bpf/test_offload.py | 151 +++++++++++++- 21 files changed, 555 insertions(+), 101 deletions(-)