Evaluation of a Server-Grade Software-Only ARM Hypervisor

Because of its enormous popularity in embedded systems and mobile devices, ARM CPU is arguably the most used CPU in the world. The resulting economies of scale benefit entices system architects to ponder the feasibility of building lower-cost and lower-power-consumption servers using ARM CPU. In modern data centers, especially those built to host cloud applications, virtualization is a must. So how to support virtualization on ARM CPUs becomes a major issue for constructing ARM-based servers. Although the latest versions of ARM architecture (Cortex-A15 and beyond) provide hardware support for virtualization, the majority of ARM-based SOCs (system-on-chip) currently available on the market do not. This paper presents results of an evaluation study of a fully operational hypervisor that successfully runs multiple VMs on an ARM Cortex A9-based server, which is architecturally non-virtualizable, and supports VM migration. This hypervisor features several optimizations that significantly reduce the performance overhead of virtualization, including physical memory remapping, and batching of sensitive/privileged instruction emulation.