public inbox for linux-mm@kvack.org
 help / color / mirror / Atom feed
* [PATCH 00/14] mm: memory hot(un)plug and SPARSEMEM cleanups
@ 2026-03-17 16:56 David Hildenbrand (Arm)
  2026-03-17 16:56 ` [PATCH 01/14] mm/memory_hotplug: remove for_each_valid_pfn() usage David Hildenbrand (Arm)
                   ` (14 more replies)
  0 siblings, 15 replies; 53+ messages in thread
From: David Hildenbrand (Arm) @ 2026-03-17 16:56 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-mm, linux-cxl, David Hildenbrand (Arm), Andrew Morton,
	Oscar Salvador, Axel Rasmussen, Yuanchu Xie, Wei Xu,
	Lorenzo Stoakes, Liam R. Howlett, Vlastimil Babka, Mike Rapoport,
	Suren Baghdasaryan, Michal Hocko

Some cleanups around memory hot(un)plug and SPARSEMEM. In essence,
we can limit CONFIG_MEMORY_HOTPLUG to CONFIG_SPARSEMEM_VMEMMAP,
remove some dead code, and move all the hotplug bits over to
mm/sparse-vmemmap.c.

Some further/related cleanups around other unnecessary code
(memory hole handling and complicated usemap allocation).

I have some further sparse.c cleanups lying around, and I'm planning
on getting rid of bootmem_info.c entirely.

Cross-compiled on a bunch of machines. Hot(un)plug tested with virtio-mem.

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Axel Rasmussen <axelrasmussen@google.com>
Cc: Yuanchu Xie <yuanchu@google.com>
Cc: Wei Xu <weixugc@google.com>
Cc: Lorenzo Stoakes <ljs@kernel.org>
Cc: "Liam R. Howlett" <Liam.Howlett@oracle.com>
Cc: Vlastimil Babka <vbabka@kernel.org>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Michal Hocko <mhocko@suse.com>

David Hildenbrand (Arm) (14):
  mm/memory_hotplug: remove for_each_valid_pfn() usage
  mm/sparse: remove WARN_ONs from (online|offline)_mem_sections()
  mm/Kconfig: make CONFIG_MEMORY_HOTPLUG depend on
    CONFIG_SPARSEMEM_VMEMMAP
  mm/memory_hotplug: simplify check_pfn_span()
  mm/sparse: remove !CONFIG_SPARSEMEM_VMEMMAP leftovers for
    CONFIG_MEMORY_HOTPLUG
  mm/bootmem_info: remove handling for !CONFIG_SPARSEMEM_VMEMMAP
  mm/bootmem_info: avoid using sparse_decode_mem_map()
  mm/sparse: remove sparse_decode_mem_map()
  mm/sparse: remove CONFIG_MEMORY_HOTPLUG-specific usemap allocation
    handling
  mm: prepare to move subsection_map_init() to mm/sparse-vmemmap.c
  mm/sparse: drop set_section_nid() from sparse_add_section()
  mm/sparse: move sparse_init_one_section() to internal.h
  mm/sparse: move __section_mark_present() to internal.h
  mm/sparse: move memory hotplug bits to sparse-vmemmap.c

 include/linux/memory_hotplug.h |   2 -
 include/linux/mmzone.h         |   6 +-
 mm/Kconfig                     |   2 +-
 mm/bootmem_info.c              |  46 +--
 mm/internal.h                  |  47 +++
 mm/memory_hotplug.c            |  24 +-
 mm/mm_init.c                   |   2 +-
 mm/sparse-vmemmap.c            | 308 +++++++++++++++++++
 mm/sparse.c                    | 539 +--------------------------------
 9 files changed, 373 insertions(+), 603 deletions(-)


base-commit: 3f4f1faa33544d0bd724e32980b6f211c3a9bc7b
-- 
2.43.0



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

end of thread, other threads:[~2026-03-20 19:07 UTC | newest]

Thread overview: 53+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-17 16:56 [PATCH 00/14] mm: memory hot(un)plug and SPARSEMEM cleanups David Hildenbrand (Arm)
2026-03-17 16:56 ` [PATCH 01/14] mm/memory_hotplug: remove for_each_valid_pfn() usage David Hildenbrand (Arm)
2026-03-17 17:19   ` Lorenzo Stoakes (Oracle)
2026-03-17 20:30   ` David Hildenbrand (Arm)
2026-03-18  7:51   ` Mike Rapoport
2026-03-17 16:56 ` [PATCH 02/14] mm/sparse: remove WARN_ONs from (online|offline)_mem_sections() David Hildenbrand (Arm)
2026-03-17 17:21   ` Lorenzo Stoakes (Oracle)
2026-03-18  7:53   ` Mike Rapoport
2026-03-17 16:56 ` [PATCH 03/14] mm/Kconfig: make CONFIG_MEMORY_HOTPLUG depend on CONFIG_SPARSEMEM_VMEMMAP David Hildenbrand (Arm)
2026-03-17 17:22   ` Lorenzo Stoakes (Oracle)
2026-03-18  7:55   ` Mike Rapoport
2026-03-17 16:56 ` [PATCH 04/14] mm/memory_hotplug: simplify check_pfn_span() David Hildenbrand (Arm)
2026-03-17 17:24   ` Lorenzo Stoakes (Oracle)
2026-03-18  7:56   ` Mike Rapoport
2026-03-17 16:56 ` [PATCH 05/14] mm/sparse: remove !CONFIG_SPARSEMEM_VMEMMAP leftovers for CONFIG_MEMORY_HOTPLUG David Hildenbrand (Arm)
2026-03-17 17:54   ` Lorenzo Stoakes (Oracle)
2026-03-18  7:58   ` Mike Rapoport
2026-03-17 16:56 ` [PATCH 06/14] mm/bootmem_info: remove handling for !CONFIG_SPARSEMEM_VMEMMAP David Hildenbrand (Arm)
2026-03-17 17:49   ` Lorenzo Stoakes (Oracle)
2026-03-18  8:15   ` Mike Rapoport
2026-03-20 18:37     ` David Hildenbrand (Arm)
2026-03-17 16:56 ` [PATCH 07/14] mm/bootmem_info: avoid using sparse_decode_mem_map() David Hildenbrand (Arm)
2026-03-17 18:02   ` Lorenzo Stoakes (Oracle)
2026-03-18  8:20   ` Mike Rapoport
2026-03-17 16:56 ` [PATCH 08/14] mm/sparse: remove sparse_decode_mem_map() David Hildenbrand (Arm)
2026-03-17 19:25   ` Lorenzo Stoakes (Oracle)
2026-03-18  8:20   ` Mike Rapoport
2026-03-17 16:56 ` [PATCH 09/14] mm/sparse: remove CONFIG_MEMORY_HOTPLUG-specific usemap allocation handling David Hildenbrand (Arm)
2026-03-17 19:48   ` Lorenzo Stoakes (Oracle)
2026-03-20 18:49     ` David Hildenbrand (Arm)
2026-03-20 18:58       ` David Hildenbrand (Arm)
2026-03-18  8:34   ` Mike Rapoport
2026-03-17 16:56 ` [PATCH 10/14] mm: prepare to move subsection_map_init() to mm/sparse-vmemmap.c David Hildenbrand (Arm)
2026-03-17 19:51   ` Lorenzo Stoakes (Oracle)
2026-03-20 18:59     ` David Hildenbrand (Arm)
2026-03-18  8:46   ` Mike Rapoport
2026-03-20 19:01     ` David Hildenbrand (Arm)
2026-03-17 16:56 ` [PATCH 11/14] mm/sparse: drop set_section_nid() from sparse_add_section() David Hildenbrand (Arm)
2026-03-17 19:55   ` Lorenzo Stoakes (Oracle)
2026-03-18  8:50   ` Mike Rapoport
2026-03-17 16:56 ` [PATCH 12/14] mm/sparse: move sparse_init_one_section() to internal.h David Hildenbrand (Arm)
2026-03-17 20:00   ` Lorenzo Stoakes (Oracle)
2026-03-18  8:54   ` Mike Rapoport
2026-03-17 16:56 ` [PATCH 13/14] mm/sparse: move __section_mark_present() " David Hildenbrand (Arm)
2026-03-17 20:01   ` Lorenzo Stoakes (Oracle)
2026-03-18  8:56   ` Mike Rapoport
2026-03-20 19:06     ` David Hildenbrand (Arm)
2026-03-17 16:56 ` [PATCH 14/14] mm/sparse: move memory hotplug bits to sparse-vmemmap.c David Hildenbrand (Arm)
2026-03-17 20:09   ` Lorenzo Stoakes (Oracle)
2026-03-20 19:07     ` David Hildenbrand (Arm)
2026-03-18  8:57   ` Mike Rapoport
2026-03-18 19:51 ` [PATCH 00/14] mm: memory hot(un)plug and SPARSEMEM cleanups Andrew Morton
2026-03-18 19:54   ` David Hildenbrand (Arm)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox