On 07/17/2018 07:53 PM, Jakub Kicinski wrote: > 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(-)
Applied to bpf-next, thanks Jakub!