Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/14] mm: Unify memmap initialization for compound pages
@ 2026-11-13  3:34 Muchun Song
  2026-11-13  3:34 ` [PATCH v2 01/14] mm/mm_init: factor out memmap_init_page_from_template() Muchun Song
                   ` (13 more replies)
  0 siblings, 14 replies; 18+ messages in thread
From: Muchun Song @ 2026-11-13  3:34 UTC (permalink / raw)
  To: Andrew Morton, David Hildenbrand, Oscar Salvador, Mike Rapoport
  Cc: Li Zhe, Andrew Popple, Balbir Singh, Lorenzo Stoakes,
	Liam R . Howlett, Vlastimil Babka, Suren Baghdasaryan,
	Michal Hocko, Muchun Song, James Houghton, Lance Yang, Qi Zheng,
	linux-mm, linux-kernel, Muchun Song

Hi,

This v2 is based on the mm-new branch at commit daed51c91051.

This series is split out from the earlier, larger series
"mm: Generalize HVO for HugeTLB and device DAX" [1]. That series
generalized vmemmap optimization across HugeTLB and device DAX. One
remaining piece is the separate compound struct page initialization used
by boot-time gigantic HugeTLB pages and compound ZONE_DEVICE ranges.

This v2 also folds in Li Zhe's two-patch series, using that series' v2
as the integration point [2]. Those patches add
memmap_init_page_from_template() and use it to reduce bootmem HugeTLB
tail struct page initialization overhead. The surrounding patches in
this queue are adjusted to build on that helper directly, so the merged
series keeps one template-copy helper and then shares frozen compound
page initialization between ZONE_DEVICE and HugeTLB.

The first two patches are the merged prerequisite series. The next four
patches make the generic memmap initialization code suitable for
sharing. They add zone-consistency verification to template copies,
factor the PFN-independent page state, simplify the ZONE_DEVICE template
setup, and introduce a helper for initializing frozen compound pages.

The HugeTLB patches then make boot-time gigantic HugeTLB initialization
rely on the common frozen compound-page helper. The following small
cleanups make now-local helpers static. The final three patches move
early-reserved CMA pageblock setup into cma_activate_area() and then move
MIGRATE_MOVABLE pageblock initialization into the shared memmap helpers.

After this series, boot-time HugeTLB and compound ZONE_DEVICE ranges,
including device DAX, use the same helpers for frozen compound-page and
pageblock initialization.

[1] https://lore.kernel.org/20260513130542.35604-1-songmuchun@bytedance.com/
[2] https://lore.kernel.org/20261112112816.55095-1-lizhe.67@bytedance.com/

v2:
- Fold in Li Zhe's memmap template helper series, based on its v2 [2].
- Remove __meminit from memmap_init_page_common().
- Add a cleanup to make memmap_init_page_from_template() static.
- Collect Reviewed-by from Mike Rapoport.
- Fix the helper name in the final commit message.

v1: https://lore.kernel.org/20261109095807.41547-1-songmuchun@bytedance.com/

Li Zhe (2):
  mm/mm_init: factor out memmap_init_page_from_template()
  mm/hugetlb: optimize bootmem hugepage tail vmemmap init

Muchun Song (12):
  mm/mm_init: verify zones for template-initialized pages
  mm/mm_init: factor out common struct page initialization
  mm/mm_init: simplify zone device page initialization
  mm/mm_init: factor out frozen compound page initialization
  mm/hugetlb: drop boot-time HVO handling for gigantic folios
  mm/hugetlb: initialize all struct pages for bootmem hugepages
  mm/hugetlb: use common compound page initialization helper
  mm/mm_init: make __init_single_page() static
  mm/mm_init: make memmap_init_page_from_template() static
  mm/cma: centralize CMA pageblock initialization
  mm/cma: localize init_cma_pageblock() to cma.c
  mm/mm_init: move pageblock migratetype init to memmap helpers

 include/linux/mm.h   |   8 --
 mm/cma.c             |  24 +++--
 mm/hugetlb.c         | 111 ++-----------------
 mm/hugetlb_vmemmap.c |  17 +--
 mm/mm_init.c         | 247 +++++++++++++++++--------------------------
 mm/mm_init.h         |  13 +--
 mm/sparse-vmemmap.c  |   7 +-
 7 files changed, 129 insertions(+), 298 deletions(-)


base-commit: daed51c9105158768a3949395135aa6e0a04bb7e
-- 
2.54.0



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

end of thread, other threads:[~2026-11-13  4:10 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-13  3:34 [PATCH v2 00/14] mm: Unify memmap initialization for compound pages Muchun Song
2026-11-13  3:34 ` [PATCH v2 01/14] mm/mm_init: factor out memmap_init_page_from_template() Muchun Song
2026-11-13  3:34 ` [PATCH v2 02/14] mm/hugetlb: optimize bootmem hugepage tail vmemmap init Muchun Song
2026-11-13  4:07   ` sashiko-bot
2026-11-13  4:10     ` Muchun Song
2026-11-13  3:34 ` [PATCH v2 03/14] mm/mm_init: verify zones for template-initialized pages Muchun Song
2026-11-13  3:34 ` [PATCH v2 04/14] mm/mm_init: factor out common struct page initialization Muchun Song
2026-11-13  3:34 ` [PATCH v2 05/14] mm/mm_init: simplify zone device " Muchun Song
2026-11-13  3:34 ` [PATCH v2 06/14] mm/mm_init: factor out frozen compound " Muchun Song
2026-11-13  3:34 ` [PATCH v2 07/14] mm/hugetlb: drop boot-time HVO handling for gigantic folios Muchun Song
2026-11-13  3:34 ` [PATCH v2 08/14] mm/hugetlb: initialize all struct pages for bootmem hugepages Muchun Song
2026-11-13  3:34 ` [PATCH v2 09/14] mm/hugetlb: use common compound page initialization helper Muchun Song
2026-11-13  3:34 ` [PATCH v2 10/14] mm/mm_init: make __init_single_page() static Muchun Song
2026-11-13  3:34 ` [PATCH v2 11/14] mm/mm_init: make memmap_init_page_from_template() static Muchun Song
2026-11-13  3:34 ` [PATCH v2 12/14] mm/cma: centralize CMA pageblock initialization Muchun Song
2026-11-13  4:07   ` sashiko-bot
2026-11-13  3:34 ` [PATCH v2 13/14] mm/cma: localize init_cma_pageblock() to cma.c Muchun Song
2026-11-13  3:34 ` [PATCH v2 14/14] mm/mm_init: move pageblock migratetype init to memmap helpers Muchun Song

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