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 Patches for the other balloon drivers will be done next. Alexander Atanasov (4): Make place for common balloon code Enable balloon drivers to report inflated memory Display inflated memory to users drivers: virtio: balloon - update inflated memory Documentation/filesystems/proc.rst | 6 +++ MAINTAINERS | 4 +- arch/powerpc/platforms/pseries/cmm.c | 2 +- drivers/misc/vmw_balloon.c | 2 +- drivers/virtio/virtio_balloon.c | 7 +++- fs/proc/meminfo.c | 10 +++++ .../linux/{balloon_compaction.h => balloon.h} | 30 ++++++++++---- mm/Makefile | 2 +- mm/{balloon_compaction.c => balloon.c} | 40 +++++++++++++++++-- mm/migrate.c | 1 - mm/vmscan.c | 1 - 11 files changed, 87 insertions(+), 18 deletions(-) rename include/linux/{balloon_compaction.h => balloon.h} (86%) rename mm/{balloon_compaction.c => balloon.c} (88%) v2: - reworked from simple /proc/meminfo addition 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 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 base-commit: 1c23f9e627a7b412978b4e852793c5e3c3efc555 -- 2.31.1