The basic idea of virtio-mem is to provide a flexible, cross-architecture memory hot(un)plug solution that avoids many limitations imposed by existing technologies, architectures, and interfaces. The target use case is dynamic VM resizing.
The initial focus is x86-64 with Linux guests. Windows guest support is in the works. On x86-64, memory can be added/removed from a virtual machine running Linux in 4 MB chunks.
Features and important current limitations can be found in the user guide. As more and more features are getting implemented and issues are getting sorted out, virtio-mem can be considered tech-preview.
Additional Sources of Information
- "virtio-mem: paravirtualized memory hot(un)plug" conference paper in VEE'21
- "virtio-mem goes to Windows" talk at DevConf.CZ 2021
- "Virtio-(balloon|pmem|mem): Managing Guest Memory" talk at KVM Forum 2020: Video and slides
- "virtio-mem: Paravirtualized Memory" talk at KVM Forum 2018: Video and slides
- Linux cover letter and Linux main patch
- QEMU main patch
On questions, you can drop David Hildenbrand a mail (see Linux/QEMU links above for the mail address).
Linux guests support virtio-mem since v5.8-rc1. Prefer using latest upstream Linux.
QEMU supports virtio-mem since v5.1.0-rc1. Prefer using upstream QEMU.
Upstream cloud-hypervisor supports virtio-mem.