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