VirtIo-Net PCIe Function Using Linux PCI Endpoint Framework
summary
Implements a prototype virtio-net PCI function using the Linux PCI endpoint framework, with a device-visible virtqueue API and an extended vhost/vring (vingage) pathway to let an endpoint present virtio devices to both root complex and local host. Demonstrates symmetric and asymmetric use (console and block/net examples), validates data-plane copying and descriptor handling via memory mapping or DMA, and exposes two hard limits: missing custom PCI capability in many EPC controllers and unreliable memory-access detection (currently solved by polling), so prototype works but has unresolved hardware dependency.
AI-written summary · about
chapters (14)
- 0:00Introduction
- 1:05VirtIO and PCI Endpoint
- 4:41PCI and VirtIO overview
- 7:22Host-to-host communication proposal
- 13:22VirtIO PCI endpoint driver
- 15:11Architecture and module separation
- 21:24PCI VirtIO module and events
- 22:29VirtIO trial and registration
- 24:15BQ operation and memory mapping
- 27:17Reusable VirtIO modules
- 28:46Symmetric and asymmetric devices
- 31:20Issues and solutions
- 35:38Conclusion
- 37:43Q&A
related talks
41mVirtIo-Net PCIe Function Using Linux PCI Endpoint Framework
30mVirtio for PCI Endpoint Subsystem in Linux Kernel
29mPCI Endpoint Subsystem Open Items Discussion
28mVirtual Versus Physical: Virtio Changes for New Hardware
21mVirtio hardware accelerators and other news
36mShared Virtual Addressing for High Performance Arm Infrastructure Platforms
21mVirtio Devices Emulation in SPDK Based on Vfio-User Protocol
27mWhat's in Virtio 1.2 - And What Isn't There
