[PATCH v2 0/4] track memory used by balloon drivers
From: Nico Pache
Date: Fri Mar 14 2025 - 17:38:31 EST
This series introduces a way to track memory used by balloon drivers.
Add a NR_BALLOON_PAGES counter to track how many pages are reclaimed by the
balloon drivers. First add the accounting, then updates the balloon drivers
(virtio, Hyper-V, VMware, Pseries-cmm, and Xen) to maintain this counter. The
virtio, Vmware, and pseries-cmm balloon drivers utilize the balloon_compaction
interface to allocate and free balloon pages. Other balloon drivers will have to
maintain this counter manually.
This makes the information visible in memory reporting interfaces like
/proc/meminfo, show_mem, and OOM reporting.
This provides admins visibility into their VM balloon sizes without
requiring different virtualization tooling. Furthermore, this information
is helpful when debugging an OOM inside a VM.
V2 changes:
- Add counter to the balloon_compaction interface
- Dropped patches for virtio and VMware as they use balloon_compaction interface
Tested: virtio_balloon, run stress-ng, inflate balloon, oom prints
Signed-off-by: Nico Pache <npache@xxxxxxxxxx>
Nico Pache (4):
meminfo: add a per node counter for balloon drivers
balloon_compaction: update the NR_BALLOON_PAGES state
hv_balloon: update the NR_BALLOON_PAGES state
xen: balloon: update the NR_BALLOON_PAGES state
drivers/hv/hv_balloon.c | 2 ++
drivers/xen/balloon.c | 4 ++++
fs/proc/meminfo.c | 2 ++
include/linux/mmzone.h | 1 +
mm/balloon_compaction.c | 2 ++
mm/show_mem.c | 4 +++-
mm/vmstat.c | 1 +
7 files changed, 15 insertions(+), 1 deletion(-)
--
2.48.1