LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Muchun Song <muchun.song@linux.dev>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Oscar Salvador <osalvador@suse.de>,
	David Hildenbrand <david@kernel.org>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Muchun Song <songmuchun@bytedance.com>,
	Mike Rapoport <rppt@kernel.org>, Lorenzo Stoakes <ljs@kernel.org>,
	"Liam R . Howlett" <liam@infradead.org>,
	Vlastimil Babka <vbabka@kernel.org>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <chleroy@kernel.org>,
	Ritesh Harjani <ritesh.list@gmail.com>,
	"Aneesh Kumar K . V" <aneesh.kumar@linux.ibm.com>,
	linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v4 00/19] mm: Refactor bootmem gigantic hugepage allocation
Date: Wed, 17 Jun 2026 14:54:39 +0800	[thread overview]
Message-ID: <1213AB34-BDA3-4EB0-A2D1-83A4744C710F@linux.dev> (raw)
In-Reply-To: <20260612035903.2468601-1-songmuchun@bytedance.com>



> On Jun 12, 2026, at 11:58, Muchun Song <songmuchun@bytedance.com> wrote:
> 
> This series is split out from the earlier larger series "mm: Generalize
> HVO for HugeTLB and device DAX" [1]. It collects the first 19 patches of
> that series as a standalone set of fixes and preparatory cleanups around
> bootmem HugeTLB handling, sparse initialization ordering, and related
> vmemmap setup.
> 
> The first patches fix a few bugs found while reviewing the existing
> code, including incorrect bootmem HVO handling, wrong vmemmap
> registration arguments, a powerpc compound-vmemmap tracking bug, and
> too-late initialization of gigantic bootmem HugeTLB struct pages.
> 
> The rest of the series reorders early memory initialization so the
> relevant zone state is available before sparse and HugeTLB boot-time
> setup runs, then simplifies the remaining bootmem gigantic hugepage
> allocation path and removes code made obsolete by that rework.
> 
> At a high level:
>  - patches [1-4] fix boot-time and arch-specific bugs
>  - patches [5-12] reorder and simplify sparse/mm/hugetlb early init
>  - patches [13-19] refactor bootmem gigantic hugepage allocation and
>    remove obsolete helpers and state
> 
> Changes since v3:
>  - patches 2-4: add Cc: stable@vger.kernel.org to the applicable fixes
>  - patch 3: collect Reviewed-by from Ritesh Harjani
>  - patch 15: move pfn_to_zone() before hugetlb_vmemmap_init_early()
>    instead of using a forward declaration
>  - patches 15-17: collect Acked-by from Mike Rapoport where applicable
>  - patch 15: collect Acked-by from Usama Arif
>  - patch 18: clarify that the changelog also covers the early CMA
>    bootmem allocation fallback refactoring
>  - patch 19: initialize pgdat at declaration in
>    __init_deferred_page() and collect Reviewed-by from Mike Rapoport
> 
> [1] https://lore.kernel.org/linux-mm/20260513130542.35604-1-songmuchun@bytedance.com/

Hi Andrew,

Would you mind picking these up for the mm-unstable branch? Almost all
patches have received a Reviewed-by or Acked-by.

Regarding the Sashiko review comments, it reported 5 issues in total, and
I've verified all of them:

- Patches 7 & 11: These are pre-existing issues and not introduced by this
  series.
- Patch 14: This is a false positive.
- Patches 8 & 9: These are valid observations but not a practical issue. The
  report mentioned:

	"moving these reservations after free_area_init() artificially inflate
	 nr_kernel_pages and nr_all_pages, potentially causing an early boot OOM"

However, this aligns the 1GB HugeTLB allocation behavior with the existing
2MB HugeTLB allocation, which already behaves this way. So it won't introduce
new risks.

Thanks for your time!

Best regards,
Muchun

> 
> Muchun Song (19):
>  mm/hugetlb: Fix boot panic with CONFIG_DEBUG_VM and HVO bootmem pages
>  mm/hugetlb_vmemmap: Fix __hugetlb_vmemmap_optimize_folios()
>  powerpc/mm: Fix wrong addr_pfn tracking in compound vmemmap population
>  mm/hugetlb: Initialize gigantic bootmem hugepage struct pages earlier
>  mm/mm_init: Simplify deferred_free_pages() migratetype init
>  mm/sparse: Panic on memmap and usemap allocation failure
>  mm/sparse: Move subsection_map_init() into sparse_init()
>  mm/mm_init: Defer sparse_init() until after zone initialization
>  mm/mm_init: Defer hugetlb reservation until after zone initialization
>  mm/mm_init: Remove set_pageblock_order() call from sparse_init()
>  mm/sparse: Move sparse_vmemmap_init_nid_late() into sparse_init_nid()
>  mm/hugetlb_cma: Validate hugetlb CMA range by zone at reserve time
>  mm/hugetlb: Refactor early boot gigantic hugepage allocation
>  mm/hugetlb: Free cross-zone bootmem gigantic pages after allocation
>  mm/hugetlb_vmemmap: Move bootmem HVO setup to early init
>  mm/hugetlb: Remove obsolete bootmem cross-zone checks
>  mm/sparse-vmemmap: Remove sparse_vmemmap_init_nid_late()
>  mm/hugetlb: Remove unused bootmem cma field
>  mm/mm_init: Fold __init_page_from_nid() into __init_deferred_page()
> 
> arch/powerpc/mm/book3s64/radix_pgtable.c |   7 +-
> arch/powerpc/mm/hugetlbpage.c            |  13 +-
> include/linux/hugetlb.h                  |  24 +--
> include/linux/mmzone.h                   |   7 -
> mm/cma.c                                 |   3 +-
> mm/hugetlb.c                             | 259 +++++++++++------------
> mm/hugetlb_cma.c                         |  44 ++--
> mm/hugetlb_cma.h                         |   8 +-
> mm/hugetlb_vmemmap.c                     | 120 +++--------
> mm/hugetlb_vmemmap.h                     |   5 -
> mm/internal.h                            |  14 +-
> mm/mm_init.c                             |  86 +++-----
> mm/sparse-vmemmap.c                      |  26 ++-
> mm/sparse.c                              |  48 +----
> 14 files changed, 251 insertions(+), 413 deletions(-)
> 
> 
> base-commit: ec039126b7fac4e3af35ebccaa7c6f9b6875ba81
> -- 
> 2.54.0



      parent reply	other threads:[~2026-06-17  6:56 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-12  3:58 [PATCH v4 00/19] mm: Refactor bootmem gigantic hugepage allocation Muchun Song
2026-06-12  3:58 ` [PATCH v4 01/19] mm/hugetlb: Fix boot panic with CONFIG_DEBUG_VM and HVO bootmem pages Muchun Song
2026-06-12  3:58 ` [PATCH v4 02/19] mm/hugetlb_vmemmap: Fix __hugetlb_vmemmap_optimize_folios() Muchun Song
2026-06-12 15:37   ` Frank van der Linden
2026-06-12  3:58 ` [PATCH v4 03/19] powerpc/mm: Fix wrong addr_pfn tracking in compound vmemmap population Muchun Song
2026-06-12  3:58 ` [PATCH v4 04/19] mm/hugetlb: Initialize gigantic bootmem hugepage struct pages earlier Muchun Song
2026-06-12  3:58 ` [PATCH v4 05/19] mm/mm_init: Simplify deferred_free_pages() migratetype init Muchun Song
2026-06-12  3:58 ` [PATCH v4 06/19] mm/sparse: Panic on memmap and usemap allocation failure Muchun Song
2026-06-12  3:58 ` [PATCH v4 07/19] mm/sparse: Move subsection_map_init() into sparse_init() Muchun Song
2026-06-15 16:35   ` XIAO WU
2026-06-16  3:04     ` Muchun Song
2026-06-12  3:58 ` [PATCH v4 08/19] mm/mm_init: Defer sparse_init() until after zone initialization Muchun Song
2026-06-12  3:58 ` [PATCH v4 09/19] mm/mm_init: Defer hugetlb reservation " Muchun Song
2026-06-12  3:58 ` [PATCH v4 10/19] mm/mm_init: Remove set_pageblock_order() call from sparse_init() Muchun Song
2026-06-12  3:58 ` [PATCH v4 11/19] mm/sparse: Move sparse_vmemmap_init_nid_late() into sparse_init_nid() Muchun Song
2026-06-12  3:58 ` [PATCH v4 12/19] mm/hugetlb_cma: Validate hugetlb CMA range by zone at reserve time Muchun Song
2026-06-12  3:58 ` [PATCH v4 13/19] mm/hugetlb: Refactor early boot gigantic hugepage allocation Muchun Song
2026-06-12  3:58 ` [PATCH v4 14/19] mm/hugetlb: Free cross-zone bootmem gigantic pages after allocation Muchun Song
2026-06-14  9:46   ` Mike Rapoport
2026-06-12  3:58 ` [PATCH v4 15/19] mm/hugetlb_vmemmap: Move bootmem HVO setup to early init Muchun Song
2026-06-12  3:59 ` [PATCH v4 16/19] mm/hugetlb: Remove obsolete bootmem cross-zone checks Muchun Song
2026-06-12  3:59 ` [PATCH v4 17/19] mm/sparse-vmemmap: Remove sparse_vmemmap_init_nid_late() Muchun Song
2026-06-12  3:59 ` [PATCH v4 18/19] mm/hugetlb: Remove unused bootmem cma field Muchun Song
2026-06-12  3:59 ` [PATCH v4 19/19] mm/mm_init: Fold __init_page_from_nid() into __init_deferred_page() Muchun Song
2026-06-17  6:54 ` Muchun Song [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1213AB34-BDA3-4EB0-A2D1-83A4744C710F@linux.dev \
    --to=muchun.song@linux.dev \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.ibm.com \
    --cc=chleroy@kernel.org \
    --cc=david@kernel.org \
    --cc=liam@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=ljs@kernel.org \
    --cc=maddy@linux.ibm.com \
    --cc=mpe@ellerman.id.au \
    --cc=npiggin@gmail.com \
    --cc=osalvador@suse.de \
    --cc=ritesh.list@gmail.com \
    --cc=rppt@kernel.org \
    --cc=songmuchun@bytedance.com \
    --cc=vbabka@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox