HyperAlloc: Efficient VM Memory De/Inflation via Hypervisor-Shared Page-Frame Allocators

EuroSys Conference A
HyperAlloc: Efficient VM Memory De/Inflation via Hypervisor-Shared Page-Frame Allocators
Lars Wrenger, Kenny Albes, Marco Wurps, Christian Dietrich, Daniel LohmannProceedings of the 20th European Conference on Computer Systems (EuroSys 2025)ACM2025Accepted for publication.
PDF Details [BibTex]
Projects: ParPerOS

Abstract

The provisioning of the right amount of DRAM to virtual machines (VMs) is still a major challenge and cost driver in virtualization settings. Many VMs run applications with highly volatile memory demands, which either leads to massive overprovisioning in low-demand phases or poor QoS in high-demand phases. Memory hotplugging and ballooning have become established techniques (in Linux/KVM available via virtio-mem and virtio-balloon) to dynamically de/inflate the physical memory of a VM in a cooperative manner, by having the guests give back unused memory to the hypervisor. However, current VM deflation techniques are either not DMA-safe, preventing the pass-through of important devices like GPUs or NICs, or are not flexible/fast enough to cope with the frequently changing demands of the guest.

We present HyperAlloc, a DMA-safe and extremely efficient mechanism for virtual machine de/inflation. The core idea is to provide the hypervisor direct access to the guest’s page-frame allocator, greatly reducing the communication overhead. HyperAlloc can shrink virtual machines 362 times faster than virtio-balloon and 10 times faster than virtio-mem while having no measurable impact on the guest’s performance. HyperAlloc’s automatic reclamation provides for better memory elasticity by reducing the average memory footprint of a clang compilation by 17 percent compared to virtio-balloon’s free-page reporting while, again, having no measurable impact on the guest’s performance.

Source Code

The source code of the LLFree allocator, the modified Linux kernel, and the benchmarks can be found on GitHub.

Artifact

To obtain the raw data of the evaluation results and the necessary programs and scripts to reproduce the experiments and analyses of the paper, please refer to the artifact documentation in our benchmark repository. The paper also contains an artifact appendix with further details.

Artifact is available Artifact is functional Paper results can be reproduced