VirtIo-Net PCIe Function Using Linux PCI Endpoint Framework
summary
Implements a prototype virtio-net PCI function with a Linux PCI Endpoint framework backend and a reusable transport layer that exposes virtqueues via an extended vring/iomem API (vring API) so endpoint drivers can map and control virtqueues from software; prototype copies data between host-side vrings and uses memory mapping or DMA to access payloads. It works functionally but hits two blockers: PCI custom-capability requirements that many endpoint controllers cannot expose, and unreliable detection of RC memory accesses (currently worked around with polling).
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
28mVirtual Versus Physical: Virtio Changes for New Hardware
21mVirtio hardware accelerators and other news
29mPCI Endpoint Subsystem Open Items Discussion
36mShared Virtual Addressing for High Performance Arm Infrastructure Platforms
28mVirtio on Type-1 hypervisors
27mWhat's in Virtio 1.2 - And What Isn't There
