Currently balloon drivers (Virtio,XEN, HyperV, VMWare, ...) inflate and deflate the guest memory size but there is no way to know how much the memory size is changed by them. A common use of the ballooning is to emulate [1] hot plug and hot unplug - due to the complexity of the later. Hotplug has a notifier and one can also check the updated memory size. To improve this add InflatedTotal and InflatedFree to /proc/meminfo and implement a balloon notifier. Amount of inflated memory can be used: - si_meminfo(..) users can improve calculations - adjust cache/buffer sizes - adjust object/connection limits - as a hint for the oom a killer - by user space software that monitors memory pressure Alexander Atanasov (7): Make place for common balloon code Enable balloon drivers to report inflated memory Display inflated memory to users drivers: virtio: balloon - update inflated memory Display inflated memory in logs drivers: vmware: balloon - report inflated memory drivers: hyperv: balloon - report inflated memory Documentation/filesystems/proc.rst | 6 +++ MAINTAINERS | 4 +- arch/powerpc/platforms/pseries/cmm.c | 2 +- drivers/hv/hv_balloon.c | 11 +++++ drivers/misc/vmw_balloon.c | 6 ++- drivers/virtio/virtio_balloon.c | 7 +++- fs/proc/meminfo.c | 10 +++++ .../linux/{balloon_compaction.h => balloon.h} | 30 ++++++++++---- lib/show_mem.c | 8 ++++ mm/Makefile | 2 +- mm/{balloon_compaction.c => balloon.c} | 40 +++++++++++++++++-- mm/migrate.c | 1 - mm/vmscan.c | 1 - 13 files changed, 110 insertions(+), 18 deletions(-) rename include/linux/{balloon_compaction.h => balloon.h} (86%) rename mm/{balloon_compaction.c => balloon.c} (88%) v4: - add support in hyperV and vmware balloon drivers - display balloon memory in show_mem so it is logged on OOM and on sysrq v3: - added missed EXPORT_SYMBOLS Reported-by: kernel test robot <lkp@xxxxxxxxx> - instead of balloon_common.h just use balloon.h (yes, naming is hard) - cleaned up balloon.h - remove from files that do not use it and remove externs from function declarations v2: - reworked from simple /proc/meminfo addition Cc: Michael S. Tsirkin <mst@xxxxxxxxxx> Cc: David Hildenbrand <david@xxxxxxxxxx> Cc: Wei Liu <wei.liu@xxxxxxxxxx> Cc: Nadav Amit <namit@xxxxxxxxxx> Cc: pv-drivers@xxxxxxxxxx Cc: Jason Wang <jasowang@xxxxxxxxxx> Cc: virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx Cc: "K. Y. Srinivasan" <kys@xxxxxxxxxxxxx> Cc: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx> Cc: Stephen Hemminger <sthemmin@xxxxxxxxxxxxx> Cc: Dexuan Cui <decui@xxxxxxxxxxxxx> Cc: linux-hyperv@xxxxxxxxxxxxxxx Cc: Juergen Gross <jgross@xxxxxxxx> Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx> Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx> Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx 1. https://lore.kernel.org/lkml/f0f12c84-a62e-5f8b-46ab-a651fe8f8589@xxxxxxxxxx/ base-commit: 2bca25eaeba6190efbfcb38ed169bd7ee43b5aaf -- 2.31.1