The Practice Method to Speed Up 10x Boot-up Time for Guest in Alibaba Cloud
summary
Claim: pinning all guest RAM for passthrough GPUs is the bottleneck, and an async DMA map plus a water balloon driver that pre-claims ranges speeds boot ~10x in practice. QEMU defers full pinning, records ballooned PFNs into a host balloon page table, and incrementally maps released ranges; combining adjacent pages and using large (2MB) pages reduces vhost notifications. Measured result: QEMU init drops to ~7s with an 8GB initialized balloon and guest boot holds ~20s even at 300+ GB RAM.
AI-written summary · about
chapters (11)
- 0:00Intro
- 0:20Agenda Background
- 0:51What is the problem? Dma_map all the guest memory when there is passthrough device
- 1:44Guest boot & QEMU initialization time vs memory size
- 3:44Options
- 5:50Architecture Overview
- 7:20virtio balloon communication Related functions and struct
- 8:15Balloon range tracking workflow
- 8:57Guest boot process with async dma map
- 11:05Optimization design
- 13:47Achievements
related talks
38mDeferred Memblocks Init for Boot Time Reduction
20mPassthrough/Headless GPU Gets Ahead
44mImproving kexec boot time
26mAnalysis of AMD HW-assisted vIOMMU Implementation and Performance
21mNVMe Emulation Performance Optimization
25mXen and XenServer Storage Performance
18mImpossible is Nothing! The 10x hpothesis
40mAchieving the Ultimate Performance with KVM
