Preserving IOMMU States During Kexec Reboot
summary
Live-update of the host kernel preserves IOMMU mappings across a kexec by reserving guest RAM in a 2 GB reserved DAX region and allocating IOMMU page tables from a new kernel allocator called KRAM static allocator, patching the Intel IOMMU driver to use those fixed pages and adding a VFIO raw mode plus QEMU changes to mask interrupts and avoid device resets. Proof‑of‑concept runs in nested KVM with PCI passthrough and shows devices recover after about 160 ms downtime.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 3:19Live-migration
- 7:01Live-update: challenges
- 8:08Live-update: migrate to file
- 10:10vfio-pci quick review
- 14:01Quick recap
- 14:49Zooming into cpr reboot
- 16:19Fix: Preserving the state
- 18:25Pinning guest ram pages
- 20:14Pinning IOMMU DMAR tables
- 23:47vfio-pci integration
- 27:36PoC: design and configuration
- 28:55PoC: live-update procedure
related talks
22mDevice Keepalive State for Local Live Migration and VMM Fast Restart
15mKVM Live Upgrade with Properly Handling of Passthrough Devices
10mTowards a More Efficiently Synchronization in KVM
33mLinux Kernel Live Patching
31mLive Update for Xenstore Stubdom
24mSupport for Fast and Reliable VMM Live Upgrades in Libvirt
28mHyperscale Kernel Live Patching at Meta
35mExtending Quality Management with Audio, Video, and KVM using Podman Quadlets
