Dynamic VM Memory Resizing daemon (vmrd)
summary
Guest-driven daemon vmrd uses Linux PSI signals and the virtio-mem interface to proactively request or return memory blocks from the primary VM, implemented in C++ and upstream-facing. It hot‑plugs 128 MB base blocks with finer subblocks of 4 MB (fake add then online per 4 MB) to reduce round‑trip latency, triggers on ~5 ms stall thresholds, and runs on Snapdragon examples. It works but has limits: shrink decisions use PSI averages and estimation, page pinning can block offlining, and hypervisor round trips add latency.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 1:57Resizing the secondary VMs
- 4:46Dynamic VM Memory Resizing
- 5:51PSI
- 12:12VMRD
- 15:10Example
- 23:23Challenges
- 25:38Implementation
- 28:42Advantages
- 30:32Other methods
- 31:53Comparison
- 34:26VFS caching
related talks
30mHot-resizing of Windows VMs via Hyper-V Dynamic Memory Protocol
13mEnabling DDR segments on demand during memory pressure for DDR power reduction
11mAdvanced Parallel Memory Virtualization
48mPersistent Memory Usage within Linux Environment
19mSupporting Trusted Virtual Machines with Hardware-based Secure Remote Memory
43mLive in a world with multiple memory types
13mRamdump for Trusted VMs: Efficient Crash Debugging Without Reboot Device
36mShared Virtual Addressing for High Performance Arm Infrastructure Platforms
