The Traps of Using Hyper-V Features in KVM Environment
summary
KVM exposes many Hyper‑V features to improve Windows performance but enabling them can hurt real workloads: cloud gaming shows 35,000 IPIs/sec spikes and one‑to‑many APIC sends ~200/sec, and enabling Hyper‑V timers drops high‑end frame rates (proportion with fps >55 drops 10%). Root cause is timer selection: S‑timer (HV STIMER) forces software interrupt injection and raises VM exits. Tested fixes include disable hypervisor CPUID, change Windows timer selection, or patch HV timer handling (disable AUTOEOI, use APIC MSR, optimize interrupt‑induced VMX); prototype patches make S‑timer cost similar to local APIC and restore performance.
AI-written summary · about
chapters (11)
- 0:00Intro
- 0:36Content
- 1:05Background
- 2:15Workload characteristics of cloud gaming
- 4:33Performance comparison with different config
- 6:08How Windows guest choose system timer
- 7:34Virtualization officiency of different system timers
- 9:30Cause Analysis
- 11:51Solutions
- 14:53Effect of optimization
- 16:20Conclusion
related talks
32mNotes on Taking KVM-on-KVM Nested Virtualization for a Spin
27mEvaluate Implementation Options of KVM-based Type1 (or 1.5) Hypervisor
20mKVM-devirt: Extending KVM to a Zero-Overhead Partition Hypervisor
15mOptimizing Application Performance on Kubernetes
10mDemo: Nested Virtualization Acceleration
32mA journey through supporting VMs with dedicated CPUs on Kubernetes
38mCtrl+Alt+Deploy: Windows Workloads as a Service powered by KubeVirt
34mThe beauty of virtual infrastructure with K8s and containers
