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

Reply via email to