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@intel.com>
- 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@redhat.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Wei Liu <wei.liu@kernel.org>
Cc: Nadav Amit <namit@vmware.com>
Cc: pv-drivers@vmware.com
Cc: Jason Wang <jasowang@redhat.com>
Cc: virtualization@lists.linux-foundation.org
Cc: "K. Y. Srinivasan" <kys@microsoft.com>
Cc: Haiyang Zhang <haiyangz@microsoft.com>
Cc: Stephen Hemminger <sthemmin@microsoft.com>
Cc: Dexuan Cui <decui@microsoft.com>
Cc: linux-hyperv@vger.kernel.org
Cc: Juergen Gross <jgross@suse.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Cc: xen-devel@lists.xenproject.org
1. https://lore.kernel.org/lkml/f0f12c84-a62e-5f8b-46ab-a651fe8f8589@redhat.com/
base-commit: 2bca25eaeba6190efbfcb38ed169bd7ee43b5aaf
--
2.31.1