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/[email protected] --- 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 <[email protected]> Cc: Oscar Salvador <[email protected]> Cc: Lorenzo Stoakes <[email protected]> Cc: "Liam R. Howlett" <[email protected]> Cc: Vlastimil Babka <[email protected]> Cc: Mike Rapoport <[email protected]> Cc: Suren Baghdasaryan <[email protected]> Cc: Michal Hocko <[email protected]> Cc: Jonathan Corbet <[email protected]> Cc: Madhavan Srinivasan <[email protected]> Cc: Michael Ellerman <[email protected]> Cc: Nicholas Piggin <[email protected]> Cc: Christophe Leroy <[email protected]> Cc: Arnd Bergmann <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Cc: Jerrin Shaji George <[email protected]> Cc: "Michael S. Tsirkin" <[email protected]> Cc: Jason Wang <[email protected]> Cc: Xuan Zhuo <[email protected]> Cc: "Eugenio Pérez" <[email protected]> Cc: Zi Yan <[email protected]> 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
