[PATCH v3 0/8] Report fatal errors from failure with pre-opened eBPF RSS FDs

Daniel P. Berrangé posted 8 patches 1 month ago
ebpf/ebpf_rss-stub.c |   8 +--
ebpf/ebpf_rss.c      | 118 ++++++++++++++++++++++++++++---------------
ebpf/ebpf_rss.h      |  10 ++--
ebpf/trace-events    |   8 ++-
hw/net/trace-events  |   8 +--
hw/net/virtio-net.c  |  63 +++++++++++++++--------
meson.build          |  10 +++-
net/meson.build      |   2 +-
8 files changed, 151 insertions(+), 76 deletions(-)
[PATCH v3 0/8] Report fatal errors from failure with pre-opened eBPF RSS FDs
Posted by Daniel P. Berrangé 1 month ago
The virtio-net code for eBPF RSS is still ignoring errors when
failing to load the eBPF RSS program passed in by the mgmt app
via pre-opened FDs.

This series re-factors the eBPF common code so that it actually
reports using "Error" objects. Then it makes virtio-net treat
a failure to load pre-opened FDs as a fatal problem. When doing
speculative opening of eBPF FDs, QEMU merely prints a warning,
and allows the software fallback to continue.

Trace event coverage is significantly expanded to make this all
much more debuggable too.

Changed in v3:

 - Fixed bpf stubs for new Error **errp argument
 - Added fix for pre-existing flaw with libxdp build logic
   when bpf is disabled

Changed in v2:

 - Split 'ebpf_error' probe into multiple probes

Daniel P. Berrangé (8):
  net: fix build when libbpf is disabled, but libxdp is enabled
  hw/net: fix typo s/epbf/ebpf/ in virtio-net
  ebpf: drop redundant parameter checks in static methods
  ebpf: improve error trace events
  ebpf: add formal error reporting to all APIs
  hw/net: report errors from failing to use eBPF RSS FDs
  ebpf: improve trace event coverage to all key operations
  hw/net: improve tracing of eBPF RSS setup

 ebpf/ebpf_rss-stub.c |   8 +--
 ebpf/ebpf_rss.c      | 118 ++++++++++++++++++++++++++++---------------
 ebpf/ebpf_rss.h      |  10 ++--
 ebpf/trace-events    |   8 ++-
 hw/net/trace-events  |   8 +--
 hw/net/virtio-net.c  |  63 +++++++++++++++--------
 meson.build          |  10 +++-
 net/meson.build      |   2 +-
 8 files changed, 151 insertions(+), 76 deletions(-)

-- 
2.46.0