linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 00/23] mm: balloon infrastructure cleanups
@ 2025-10-21 12:59 David Hildenbrand
  2025-10-21 12:59 ` [PATCH v1 01/23] vmw_balloon: adjust BALLOON_DEFLATE when deflating while migrating David Hildenbrand
                   ` (16 more replies)
  0 siblings, 17 replies; 39+ messages in thread
From: David Hildenbrand @ 2025-10-21 12:59 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-mm, linuxppc-dev, Broadcom internal kernel review list,
	linux-doc, virtualization, David Hildenbrand, Andrew Morton,
	Oscar Salvador, Lorenzo Stoakes, Liam R. Howlett, Vlastimil Babka,
	Mike Rapoport, Suren Baghdasaryan, Michal Hocko, Jonathan Corbet,
	Madhavan Srinivasan, Michael Ellerman, Nicholas Piggin,
	Christophe Leroy, Arnd Bergmann, Greg Kroah-Hartman,
	Jerrin Shaji George, Michael S. Tsirkin, Jason Wang, Xuan Zhuo,
	Eugenio Pérez, Zi Yan

This is based on mm/mm-unstable with two PPC CMM fixes I sent out
separately earlier today [1] applied first.

[1] https://lkml.kernel.org/r/20251021100606.148294-1-david@redhat.com

---

I started with wanting to remove the dependency of the balloon
infrastructure on the page lock, but ended up performing various other
cleanups, some of which I had on my todo list for years.

This series heavily cleans up and simplifies our balloon infrastructure,
including our balloon page migration functionality.

With this series, we no longer make use of the page lock for PageOffline
pages as part of the balloon infrastructure (preparing for memdescs
where PageOffline pages won't have any such lock), and simplifies
migration handling such that refcounting can more easily be adjusted
later (long-term focus is for PageOffline pages to not have a refcount
either).

Plenty of related cleanups.

Heavily compile-tested and heavily runtime-tested with virtio-balloon.
PPC CMM and the VMware balloon are untested and I'd appreciate a helping
hand from people that have suitable environments.

Not CCing maintainers for the vmscan.c and migrate.c change as they
are rather trivial and I don't want to patchbomb them.

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: "Liam R. Howlett" <Liam.Howlett@oracle.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jerrin Shaji George <jerrin.shaji-george@broadcom.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Jason Wang <jasowang@redhat.com>
Cc: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Cc: "Eugenio Pérez" <eperezma@redhat.com>
Cc: Zi Yan <ziy@nvidia.com>

David Hildenbrand (23):
  vmw_balloon: adjust BALLOON_DEFLATE when deflating while migrating
  vmw_balloon: remove vmballoon_compaction_init()
  powerpc/pseries/cmm: remove cmm_balloon_compaction_init()
  mm/balloon_compaction: centralize basic page migration handling
  mm/balloon_compaction: centralize adjust_managed_page_count() handling
  vmw_balloon: stop using the balloon_dev_info lock
  mm/balloon_compaction: use a device-independent balloon (list) lock
  mm/balloon_compaction: remove dependency on page lock
  mm/balloon_compaction: make balloon_mops static
  mm/balloon_compaction: drop fs.h include from balloon_compaction.h
  drivers/virtio/virtio_balloon: stop using balloon_page_push/pop()
  mm/balloon_compaction: remove balloon_page_push/pop()
  mm/balloon_compaction: fold balloon_mapping_gfp_mask() into
    balloon_page_alloc()
  mm/balloon_compaction: move internal helpers to memory_compaction.c
  mm/balloon_compaction: assert that the balloon_pages_lock is held
  mm/balloon_compaction: mark remaining functions for having proper
    kerneldoc
  mm/balloon_compaction: remove "extern" from functions
  mm/vmscan: drop inclusion of balloon_compaction.h
  mm: rename balloon_compaction.(c|h) to balloon.(c|h)
  mm/kconfig: make BALLOON_COMPACTION depend on MIGRATION
  mm: rename CONFIG_BALLOON_COMPACTION to CONFIG_BALLOON_MIGRATION
  mm: rename CONFIG_MEMORY_BALLOON -> CONFIG_BALLOON
  MAINTAINERS: move memory balloon infrastructure to "MEMORY MANAGEMENT
    - BALLOON"

 .../admin-guide/mm/memory-hotplug.rst         |   8 +-
 Documentation/core-api/mm-api.rst             |   2 +-
 MAINTAINERS                                   |  12 +-
 arch/powerpc/platforms/pseries/Kconfig        |   2 +-
 arch/powerpc/platforms/pseries/cmm.c          |  53 +----
 drivers/misc/Kconfig                          |   2 +-
 drivers/misc/vmw_balloon.c                    | 105 +++-------
 drivers/virtio/Kconfig                        |   2 +-
 drivers/virtio/virtio_balloon.c               |  64 ++----
 include/linux/balloon.h                       |  77 +++++++
 include/linux/balloon_compaction.h            | 160 ---------------
 include/linux/vm_event_item.h                 |   8 +-
 mm/Kconfig                                    |  23 +--
 mm/Makefile                                   |   2 +-
 mm/{balloon_compaction.c => balloon.c}        | 194 +++++++++++++-----
 mm/memory_hotplug.c                           |   4 +-
 mm/migrate.c                                  |   2 +-
 mm/vmscan.c                                   |   1 -
 mm/vmstat.c                                   |   8 +-
 19 files changed, 314 insertions(+), 415 deletions(-)
 create mode 100644 include/linux/balloon.h
 delete mode 100644 include/linux/balloon_compaction.h
 rename mm/{balloon_compaction.c => balloon.c} (59%)

-- 
2.51.0



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

end of thread, other threads:[~2025-10-22  8:43 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-21 12:59 [PATCH v1 00/23] mm: balloon infrastructure cleanups David Hildenbrand
2025-10-21 12:59 ` [PATCH v1 01/23] vmw_balloon: adjust BALLOON_DEFLATE when deflating while migrating David Hildenbrand
2025-10-22  1:03   ` SeongJae Park
2025-10-21 12:59 ` [PATCH v1 02/23] vmw_balloon: remove vmballoon_compaction_init() David Hildenbrand
2025-10-21 12:59 ` [PATCH v1 03/23] powerpc/pseries/cmm: remove cmm_balloon_compaction_init() David Hildenbrand
2025-10-21 20:43   ` Michael S. Tsirkin
2025-10-22  8:37     ` David Hildenbrand
2025-10-21 12:59 ` [PATCH v1 04/23] mm/balloon_compaction: centralize basic page migration handling David Hildenbrand
2025-10-21 20:50   ` Michael S. Tsirkin
2025-10-22  8:37     ` David Hildenbrand
2025-10-21 12:59 ` [PATCH v1 05/23] mm/balloon_compaction: centralize adjust_managed_page_count() handling David Hildenbrand
2025-10-21 12:59 ` [PATCH v1 06/23] vmw_balloon: stop using the balloon_dev_info lock David Hildenbrand
2025-10-21 20:57   ` Michael S. Tsirkin
2025-10-22  8:40     ` David Hildenbrand
2025-10-21 12:59 ` [PATCH v1 07/23] mm/balloon_compaction: use a device-independent balloon (list) lock David Hildenbrand
2025-10-21 20:52   ` Michael S. Tsirkin
2025-10-22  8:42     ` David Hildenbrand
2025-10-21 12:59 ` [PATCH v1 08/23] mm/balloon_compaction: remove dependency on page lock David Hildenbrand
2025-10-21 12:59 ` [PATCH v1 09/23] mm/balloon_compaction: make balloon_mops static David Hildenbrand
2025-10-21 12:59 ` [PATCH v1 10/23] mm/balloon_compaction: drop fs.h include from balloon_compaction.h David Hildenbrand
2025-10-21 12:59 ` [PATCH v1 11/23] drivers/virtio/virtio_balloon: stop using balloon_page_push/pop() David Hildenbrand
2025-10-21 20:59   ` Michael S. Tsirkin
2025-10-22  8:43     ` David Hildenbrand
2025-10-21 12:59 ` [PATCH v1 12/23] mm/balloon_compaction: remove balloon_page_push/pop() David Hildenbrand
2025-10-21 12:59 ` [PATCH v1 13/23] mm/balloon_compaction: fold balloon_mapping_gfp_mask() into balloon_page_alloc() David Hildenbrand
2025-10-21 12:59 ` [PATCH v1 14/23] mm/balloon_compaction: move internal helpers to memory_compaction.c David Hildenbrand
2025-10-21 15:36   ` Zi Yan
2025-10-21 15:37     ` David Hildenbrand
2025-10-21 12:59 ` [PATCH v1 15/23] mm/balloon_compaction: assert that the balloon_pages_lock is held David Hildenbrand
2025-10-21 12:59 ` [PATCH v1 16/23] mm/balloon_compaction: mark remaining functions for having proper kerneldoc David Hildenbrand
2025-10-21 15:00 ` [PATCH v1 17/23] mm/balloon_compaction: remove "extern" from functions David Hildenbrand
2025-10-21 15:00   ` [PATCH v1 18/23] mm/vmscan: drop inclusion of balloon_compaction.h David Hildenbrand
2025-10-21 15:00   ` [PATCH v1 19/23] mm: rename balloon_compaction.(c|h) to balloon.(c|h) David Hildenbrand
2025-10-21 15:00   ` [PATCH v1 20/23] mm/kconfig: make BALLOON_COMPACTION depend on MIGRATION David Hildenbrand
2025-10-21 17:13     ` Randy Dunlap
2025-10-21 18:43       ` David Hildenbrand
2025-10-21 15:00   ` [PATCH v1 21/23] mm: rename CONFIG_BALLOON_COMPACTION to CONFIG_BALLOON_MIGRATION David Hildenbrand
2025-10-21 15:00   ` [PATCH v1 22/23] mm: rename CONFIG_MEMORY_BALLOON -> CONFIG_BALLOON David Hildenbrand
2025-10-21 15:00   ` [PATCH v1 23/23] MAINTAINERS: move memory balloon infrastructure to "MEMORY MANAGEMENT - BALLOON" David Hildenbrand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).