[PATCH 00/14] mm: memory hot(un)plug and SPARSEMEM cleanups

David Hildenbrand (Arm) posted 14 patches 2 weeks, 6 days ago
There is a newer version of this series
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(-)
[PATCH 00/14] mm: memory hot(un)plug and SPARSEMEM cleanups
Posted by David Hildenbrand (Arm) 2 weeks, 6 days ago
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
Re: [PATCH 00/14] mm: memory hot(un)plug and SPARSEMEM cleanups
Posted by Andrew Morton 2 weeks, 5 days ago
On Tue, 17 Mar 2026 17:56:38 +0100 "David Hildenbrand (Arm)" <david@kernel.org> wrote:

> 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.

Added to mm-new, thanks.

Sashiko said a few things, as I expect you've seen:
https://sashiko.dev/#/patchset/20260317165652.99114-1-david%40kernel.org
Re: [PATCH 00/14] mm: memory hot(un)plug and SPARSEMEM cleanups
Posted by David Hildenbrand (Arm) 2 weeks, 5 days ago
On 3/18/26 20:51, Andrew Morton wrote:
> On Tue, 17 Mar 2026 17:56:38 +0100 "David Hildenbrand (Arm)" <david@kernel.org> wrote:
> 
>> 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.
> 
> Added to mm-new, thanks.
> 
> Sashiko said a few things, as I expect you've seen:
> https://sashiko.dev/#/patchset/20260317165652.99114-1-david%40kernel.org

Yes. I'll respin later this week (only small nits and taking care of the
existing weirdness in scan_movable_pages() in a less ugly way).

-- 
Cheers,

David