Virtio on Type-1 hypervisors
summary
Qualcomm implements virtio for Linux guests on a Type‑1 hypervisor and finds three concrete problems and fixes: backends lack access to guest RAM so front‑end copies I/O buffers into a small shared region using SWIOTLB bounce buffers and new DMA ops, rings are allocated from that shared memory, and the hypervisor lacks MMIO trapping so virtio’s mmio.c is converted to a MMIO→message‑queue shim to send config reads/writes. A lightweight modified lkvm backend is used for tests. Result works functionally but shows measurable performance loss from bouncing; code will be published.
AI-written summary · about
chapters (9)
- 0:00Intro
- 0:38Virtualization in embedded systems
- 2:49IO Virtualization How can IO devices be best virtualized?
- 7:52Virtlo - Type 2 vs Type 1 hypervisor
- 11:23Type 1 Hypervisor - Some considerations
- 13:21Memory Sharing
- 14:42Virtio - Dealing with memory access limitation
- 20:23Virtio Transport - MMIO or a new one?
- 23:12Future Work
related talks
36mShared Virtual Addressing for High Performance Arm Infrastructure Platforms
21mVirtio hardware accelerators and other news
30mVirtio for PCI Endpoint Subsystem in Linux Kernel
27mWhat's in Virtio 1.2 - And What Isn't There
17mVirtio data flow: There and Back Again
35mVirtio-Loopback: An Hardware Abstraction Layer (HAL) for Non-Virtualized Environm...
41mVirtIo-Net PCIe Function Using Linux PCI Endpoint Framework
28mVirtual Versus Physical: Virtio Changes for New Hardware
