Receive Side Scaling (RSS) with eBPF in QEMU and virtio-net
summary
Implementation of RSS via eBPF inside QEMU for virtio-net, with a software proof‑of‑concept in QEMU and an eBPF program compiled into a skeleton and loaded via libbpf. Kernel 5.8+ and process capabilities (CAP_BPF, CAP_NET_ADMIN) are required; libvirt needs a helper to pass fds. Hash population into the virtio_net header is work in progress; initial QEMU support is merged and additional patches are under review. software proof-of-concept in QEMU requires kernel 5.8+ and CAP_BPF/CAP_NET_ADMIN falls back to QEMU steering on migration or load failure
AI-written summary · about
chapters (21)
- 0:00Intro
- 1:00What is RSS?
- 3:12History: RSS and virtio-net
- 7:59virtio spec changes - capabilities
- 8:28virtio spec changes - device configu
- 8:41virtio spec changes - setting RSS parai
- 9:02virtio spec changes - virtio-net-hd
- 9:17What is eBPF?
- 10:06How can eBPF help us?
- 10:33The "magic"
- 11:10Hash population work in progres
- 12:03eBPF program source in QEMU
- 12:17eBPF program skeleton
- 13:21Configuration map
- 13:43Loading eBPF program
- 15:37Fallback
- 16:14Live migration
- 16:45QEMU command line
- 17:44libvirt integration
- 18:28Current status
- 18:49Pending patches
related talks
13mRosenBridge: A Framework for Enabling Express I/O Paths Across the Virtualization...
19mBring RoCE (RDMA over Converged Ethernet) Capability to Virtio-net Device
41mVirtIo-Net PCIe Function Using Linux PCI Endpoint Framework
41mVirtIo-Net PCIe Function Using Linux PCI Endpoint Framework
17mVirtio data flow: There and Back Again
21mVirtio hardware accelerators and other news
30mQEMU-Storage-Daemon and libblkio: Exploring New Shores for the QE...
37mEfficient and Flexible Virtual Machine Networking Through eBPF
