Hi! This patchset adds support for sharing BPF objects within one ASIC. This will allow us to reuse of the same program on multiple ports of a device leading to better code store utilization. It also enables sharing maps between programs attached to different ports of a device.
v2: - rename bpf_offload_match() to bpf_offload_prog_map_match(); - add split patches 7 into 5, 7 and 8. Jakub Kicinski (11): 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 drivers/net/ethernet/netronome/nfp/bpf/main.c | 23 ++ drivers/net/ethernet/netronome/nfp/bpf/main.h | 4 + .../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 + .../ethernet/netronome/nfp/nfp_net_common.c | 2 + .../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 | 11 +- kernel/bpf/offload.c | 223 ++++++++++++++---- kernel/bpf/verifier.c | 2 +- tools/testing/selftests/bpf/test_offload.py | 151 +++++++++++- 14 files changed, 544 insertions(+), 85 deletions(-) -- 2.17.1