An Open-Source ARM Virtualization System
As ARM CPUs become increasingly common in mobile devices and servers, there is a growing demand for providing the benefits of virtualization for ARM-based devices. We present our experiences building the Linux ARM hypervisor, KVM/ARM, the first full system ARM virtualization solution that can run unmodified guest operating systems on ARM multicore hardware. KVM/ARM introduces split-mode virtualization, allowing a hypervisor to split its execution across CPU modes and be integrated into the Linux kernel. This allows KVM/ARM to leverage existing Linux hardware support and functionality to simplify hy- pervisor development and maintainability while utilizing recent ARM hardware virtualization extensions to run virtual machines with comparable performance to native execution. KVM/ARM has been successfully merged into the mainline Linux kernel, ensuring that it will gain wide adoption as the virtualization platform of choice for ARM. We provide the first measurements on real hardware of a complete hypervisor using ARM hardware virtualization support. Our results demonstrate that KVM/ARM has modest virtualization performance and power costs, and can achieve lower performance and power costs compared to x86-based Linux virtualization on multicore hardware.
Related Publications
Resources
- kvmarm Mailing List – Follow new patches and system discussions and browse through archives
- kvmarm-user Mailing List – Ask questions on how to boot and use the system
- KVM/ARM Workflow Description: http://columbia.github.io/linux-kvm-arm/
- Kernel Source code: https://git.kernel.org/cgit/linux/kernel/git/kvmarm/kvmarm.git/
- QEMU Source code: http://git.qemu.org/?p=qemu.git;a=summary
- Development guide (in collaboration with Virtual Open Systems).
- Lwn.net article about KVM/ARM: https://lwn.net/Articles/557132/