[PATCH v3 00/24] mm: balloon infrastructure cleanups
David Hildenbrand (Red Hat)
david at kernel.org
Tue Jan 20 10:01:08 AEDT 2026
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.
--
v2 -> v3:
* "mm/balloon_compaction: centralize basic page migration handling"
-> Remove newline
-> Talk about "page" instead of "old page"
-> avoid the switch statement
* "mm/balloon_compaction: move internal helpers to balloon_compaction.c"
-> No need to carry over the "inline"
* "fixup mm: rename CONFIG_BALLOON_COMPACTION to CONFIG_BALLOON_MIGRATION
-> Remove some more "balloon page compaction" thingies
* "MAINTAINERS: move memory balloon infrastructure to "MEMORY MANAGEMENT -
BALLOON"
-> CC the virt list and use the proper mail address
* "mm/balloon_compaction: improve comments for WARN_ON_ONCE(!b_dev_info)
-> Added
v1 -> v2:
* Rebased to latest mm/mm-unstable without any conflicts
* Minor patch description/subject and comment fixups
* Retested
Cc: Andrew Morton <akpm at linux-foundation.org>
Cc: Oscar Salvador <osalvador at suse.de>
Cc: Lorenzo Stoakes <lorenzo.stoakes at oracle.com>
Cc: "Liam R. Howlett" <Liam.Howlett at oracle.com>
Cc: Vlastimil Babka <vbabka at suse.cz>
Cc: Mike Rapoport <rppt at kernel.org>
Cc: Suren Baghdasaryan <surenb at google.com>
Cc: Michal Hocko <mhocko at suse.com>
Cc: Jonathan Corbet <corbet at lwn.net>
Cc: Madhavan Srinivasan <maddy at linux.ibm.com>
Cc: Michael Ellerman <mpe at ellerman.id.au>
Cc: Nicholas Piggin <npiggin at gmail.com>
Cc: Christophe Leroy <christophe.leroy at csgroup.eu>
Cc: Arnd Bergmann <arnd at arndb.de>
Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
Cc: Jerrin Shaji George <jerrin.shaji-george at broadcom.com>
Cc: "Michael S. Tsirkin" <mst at redhat.com>
Cc: Jason Wang <jasowang at redhat.com>
Cc: Xuan Zhuo <xuanzhuo at linux.alibaba.com>
Cc: "Eugenio Pérez" <eperezma at redhat.com>
Cc: Zi Yan <ziy at nvidia.com>
David Hildenbrand (Red Hat) (24):
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: improve comments for WARN_ON_ONCE(!b_dev_info)
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 balloon_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 | 13 +-
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} | 200 ++++++++++++------
mm/memory_hotplug.c | 4 +-
mm/migrate.c | 2 +-
mm/vmscan.c | 1 -
mm/vmstat.c | 8 +-
19 files changed, 319 insertions(+), 417 deletions(-)
create mode 100644 include/linux/balloon.h
delete mode 100644 include/linux/balloon_compaction.h
rename mm/{balloon_compaction.c => balloon.c} (58%)
base-commit: f8ed52ac0cfbddff992bb9600941bfe51e1e385a
--
2.52.0
More information about the Linuxppc-dev
mailing list