All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH v5 0/8] Make balloon drivers' memory changes known to the rest of the kernel
@ 2022-10-19  9:56 ` Alexander Atanasov
  0 siblings, 0 replies; 28+ messages in thread
From: Alexander Atanasov @ 2022-10-19  9:56 UTC (permalink / raw)
  Cc: kernel, Alexander Atanasov, kernel test robot,
	Michael S . Tsirkin, David Hildenbrand, Wei Liu, Nadav Amit,
	pv-drivers, Jason Wang, virtualization, K. Y. Srinivasan,
	Haiyang Zhang, Stephen Hemminger, Dexuan Cui, linux-hyperv,
	Juergen Gross, Stefano Stabellini, Oleksandr Tyshchenko,
	xen-devel

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.

Make it possible for the drivers to report the values to mm core.

Display reported InflatedTotal and InflatedFree in /proc/meminfo
and print these values on OOM and sysrq from show_mem().

The two values are the result of the two modes the drivers work
with using adjust_managed_page_count or without.

In earlier versions, there was a notifier for these changes
but after discussion - it is better to implement it in separate
patch series. Since it came out as larger work than initially expected.

Amount of inflated memory can be used:
 - totalram_pages() users working with drivers not using
    adjust_managed_page_count
 - si_meminfo(..) users can improve calculations
 - by userspace software that monitors memory pressure

Alexander Atanasov (8):
  mm: Make a place for a common balloon code
  mm: Enable balloon drivers to report inflated memory
  mm: Display inflated memory to users
  mm: Display inflated memory in logs
  drivers: virtio: balloon - report inflated memory
  drivers: vmware: balloon - report inflated memory
  drivers: hyperv: balloon - report inflated memory
  documentation: create a document about how balloon drivers operate

 Documentation/filesystems/proc.rst            |   6 +
 Documentation/mm/balloon.rst                  | 138 ++++++++++++++++++
 MAINTAINERS                                   |   4 +-
 arch/powerpc/platforms/pseries/cmm.c          |   2 +-
 drivers/hv/hv_balloon.c                       |  12 ++
 drivers/misc/vmw_balloon.c                    |   3 +-
 drivers/virtio/virtio_balloon.c               |   7 +-
 fs/proc/meminfo.c                             |  10 ++
 .../linux/{balloon_compaction.h => balloon.h} |  18 ++-
 lib/show_mem.c                                |   8 +
 mm/Makefile                                   |   2 +-
 mm/{balloon_compaction.c => balloon.c}        |  19 ++-
 mm/migrate.c                                  |   1 -
 mm/vmscan.c                                   |   1 -
 14 files changed, 213 insertions(+), 18 deletions(-)
 create mode 100644 Documentation/mm/balloon.rst
 rename include/linux/{balloon_compaction.h => balloon.h} (91%)
 rename mm/{balloon_compaction.c => balloon.c} (94%)

v4->v5:
 - removed notifier
 - added documentation
 - vmware update after op is done , outside of the mutex
v3->v4:
 - add support in hyperV and vmware balloon drivers
 - display balloon memory in show_mem so it is logged on OOM and on sysrq
v2->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
v1->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

base-commit: 9abf2313adc1ca1b6180c508c25f22f9395cc780
-- 
2.31.1


^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2022-10-21  8:03 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-19  9:56 [RFC PATCH v5 0/8] Make balloon drivers' memory changes known to the rest of the kernel Alexander Atanasov
2022-10-19  9:56 ` Alexander Atanasov
2022-10-19  9:56 ` [RFC PATCH v5 1/8] mm: Make a place for a common balloon code Alexander Atanasov
2022-10-19  9:56   ` Alexander Atanasov
2022-10-19  9:56 ` [RFC PATCH v5 2/8] mm: Enable balloon drivers to report inflated memory Alexander Atanasov
2022-10-19  9:56 ` [RFC PATCH v5 3/8] mm: Display inflated memory to users Alexander Atanasov
2022-10-19  9:56 ` [RFC PATCH v5 4/8] mm: Display inflated memory in logs Alexander Atanasov
2022-10-19  9:56 ` [RFC PATCH v5 5/8] drivers: virtio: balloon - report inflated memory Alexander Atanasov
2022-10-19  9:56 ` [RFC PATCH v5 6/8] drivers: vmware: " Alexander Atanasov
2022-10-19 10:26   ` Greg Kroah-Hartman
2022-10-19 10:38     ` Alexander Atanasov
2022-10-19 10:49       ` Greg Kroah-Hartman
2022-10-19 11:06         ` Alexander Atanasov
2022-10-21  6:50   ` Nadav Amit
2022-10-21  7:25     ` Alexander Atanasov
2022-10-21  7:31       ` Nadav Amit
2022-10-21  8:02         ` Alexander Atanasov
2022-10-19  9:56 ` [RFC PATCH v5 7/8] drivers: hyperv: " Alexander Atanasov
2022-10-19  9:56 ` [RFC PATCH v5 8/8] documentation: create a document about how balloon drivers operate Alexander Atanasov
2022-10-19 13:53   ` Jonathan Corbet
2022-10-19 10:53 ` [RFC PATCH v5 0/8] Make balloon drivers' memory changes known to the rest of the kernel Konstantin Khlebnikov
2022-10-19 10:53   ` Konstantin Khlebnikov
2022-10-19 11:06   ` Denis V. Lunev
2022-10-19 11:06     ` Denis V. Lunev via Virtualization
2022-10-19 15:39     ` Konstantin Khlebnikov
2022-10-19 15:39       ` Konstantin Khlebnikov
2022-10-19 18:03       ` Alexander Atanasov
2022-10-19 11:44   ` Alexander Atanasov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.