Microsoft released an RTM build of Windows on Arm last year on their website, and Linaro provides instructions for running it on QEMU/KVM. Now we can run Windows on Arm on QEMU/KVM flawlessly, or can we?
Despite basic configuration working with TCG, experiments on Asahi Linux revealed the reliability and functionality of a Windows VM on Arm proved to be far from par with Windows on x64 or Linux on Arm. Key issues included:
- QEMU and KVM struggled with PMU (Performance Monitoring Unit) emulation, a critical requirement for Windows.
- The virtio-gpu graphics driver, essential for features like high and variable display resolution, frequently crashed.
- The SPICE guest agent, necessary for features such as clipboard sharing, failed to function.
These hurdles necessitated multiple patches to update the entire virtualization stack. This presentation will demonstrate how these changes not only enhance the Windows on Arm experience but also improve Windows guest and Arm virtualization experiences overall. Lastly, I'll share insights gained from bringing up such an exotic platform and discuss future work.