QEMU Live Update
summary
A method to replace a running QEMU by execing a new binary while keeping guest RAM and most FDs intact uses a ~300‑line madvise_do_exec kernel patch, CPR save/CPR load monitor commands, and VFIO descriptor preservation; guest pause is about 100 ms on a 4‑year‑old Xeon, the VM state file is <1 MB, and updates across QEMU 2.x→3.x→4.x work. Kernel fix in 5.8 removes a linear set_memory_region cost, kexec+PKRAM preserves hundreds of GB in <1 s, and legacy hosts use a VM save injected shared object.
AI-written summary · about
chapters (9)
- 0:00Start
- 1:39Design Elements
- 4:09Preserving guest memory (2)
- 5:26VFIO device state
- 7:32QEMU Device State
- 9:40cprload files
- 11:07Demo Video
- 14:58Kernel Live Update
- 16:54Future Work
related talks
17mVDUSE - vDPA Device in Userspace
10mArming Ceph: CI Enhancement and UADK Integration
34mDeclarative Device Virtualization: Orchestrating GPUs & Hardware in Cloud Native Environments
30mControlling the NES with Javascript
16mGPU Accelerated Containers on Apple Silicon with libkrun and podman machine
32mDeep Dive into firecracker-containerd
30mNode.js Deep Debugging
15mDeveloping for the Next Generation of Windows
