Zero-copy display of guest framebuffers using GEM
summary
Zero-copy display maps a guest linear framebuffer into dom0 DRM/KMS so the GPU scans it out directly, eliminating the CPU copy path and driving near-zero CPU usage in dom0 when used with KMS on a unified memory system. Implementation adds a small GEM ioctl that builds a GEM object backed by guest pages (using Xen translate_gpfns or grant MTP overrides), exposes it via KMS, PRIME fds or EGL images, and ships as working code on GitHub with modest kernel patches required.
AI-written summary · about
chapters (12)
- 0:00Intro
- 0:23Agenda
- 0:47Overview of QEMU Graphics (The quick version)
- 2:04Worst Case Scenario
- 3:29Existing Optimizations
- 4:58The Obvious Solution!
- 5:21Unpleasant Reality
- 7:45Foreign pages?
- 8:39Grants?
- 10:05Manual m2p_override
- 10:48Foreign-backed GEM Objects
- 13:25Code
related talks
20mPassthrough/Headless GPU Gets Ahead
33mGPU Para-Virtualization on Xen
39mNavigating the Linux Graphics Stack
35mIsolating GPU access in its own process
15mThe Practice Method to Speed Up 10x Boot-up Time for Guest in Alibaba Cloud
32mThe Modern Linux Graphics Stack on Embedded Systems
20mSpeed Up Creation of a VM With Pass Through GPU
01h 00mIsolating GPU access in its own process
