Challenges in Supporting Virtual CPU Hotplug on SoC Based Systems (like ARM64)
summary
Prototype implements virtual vCPU hotplug for ARM64 by changing QEMU/KVM and guest kernel: it pre-creates vCPUs and redistributors but avoids spawning threads for disabled ones, parks unplugged vCPUs instead of destroying them, and passes topology via a PPTT-like table to the guest. Key problems are that ARM has no physical CPU hotplug spec, GIC and KVM expect all vCPUs at VM init, and MPIDR is currently derived in KVM rather than by user-space MPIDR config. Upstreaming stalls; next steps are live migration, PPTT support, tests and docs.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 2:24Why do we need a Virtual CPU Hotplug
- 7:03Challenges
- 8:11Known Challenges
- 11:24Limitation imposed by vgeck
- 12:18Unwiring of interrupt setups
- 15:24Workarounds
- 17:35KVM
- 19:59Recent attempts
- 21:19Problems in upstream
- 22:24Summary
- 23:28Future Work
- 23:57Thank You
related talks
45mDynamic vCPU priority boosting in KVM for latency sensitive workloads
27mCPU Feature Management: Lessons from Trenches
38mPanel Discussion: KVM-based Virtualization Contributor Q&A
23mHyper-V's Virtual Secure Mode in KVM project update
36mShared Virtual Addressing for High Performance Arm Infrastructure Platforms
31mKVM Nested Virtualization: Workings and Usecases
30mNested Virtualization (X86) Part II
42mQEMU in UEFI
