From: Andrew Morton <akpm@linux-foundation.org>
To: Muchun Song <songmuchun@bytedance.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>,
Mike Rapoport <rppt@kernel.org>,
David Hildenbrand <david@kernel.org>,
Michael Ellerman <mpe@ellerman.id.au>,
Nicholas Piggin <npiggin@gmail.com>,
Christophe Leroy <chleroy@kernel.org>,
Ritesh Harjani <ritesh.list@gmail.com>,
Shrikanth Hegde <sshegde@linux.ibm.com>,
Lorenzo Stoakes <ljs@kernel.org>,
"Liam R . Howlett" <liam@infradead.org>,
Vlastimil Babka <vbabka@kernel.org>,
Suren Baghdasaryan <surenb@google.com>,
Michal Hocko <mhocko@suse.com>, Qi Zheng <qi.zheng@linux.dev>,
Lance Yang <lance.yang@linux.dev>,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, muchun.song@linux.dev
Subject: Re: [PATCH v4 0/6] mm: Unify device DAX and HugeTLB vmemmap population paths
Date: Sat, 10 Oct 2026 13:42:22 -0700 [thread overview]
Message-ID: <20261010134222.b6fdcb20d8fec5aaceab66ec@linux-foundation.org> (raw)
In-Reply-To: <20261010075755.83339-1-songmuchun@bytedance.com>
On Sat, 10 Oct 2026 15:57:49 +0800 Muchun Song <songmuchun@bytedance.com> wrote:
> This v4 is based on mm-new commit d5207c6d152c, which contains v6 of
> "mm: Switch device DAX to section-based vmemmap optimization" [1].
>
> This series is split out from the earlier, larger series "mm: Generalize
> HVO for HugeTLB and device DAX" [2]. While the parent series generalizes
> vmemmap optimization across HugeTLB and device DAX, this subset addresses
> a single, self-contained step: unifying their vmemmap population paths.
>
> After the preceding Device DAX conversion, both HugeTLB and Device DAX
> describe optimized vmemmap mappings through memory-section metadata and
> use per-zone shared tail vmemmap pages. The generic code, however, still
> carries a Device DAX-specific population flag and compound-page population
> path, along with arguments and helpers needed only by that path.
>
> This series first removes VMEMMAP_POPULATE_DAX and moves selection and
> reference handling for the shared tail page into the common vmemmap
> population path. It then removes the generic Device DAX-specific
> compound-page population path and routes section vmemmap population
> through vmemmap_populate(). The powerpc radix path continues to use its
> architecture-specific compound-page population implementation for
> optimizable sections.
>
> The remaining patches remove the unused ptpfn argument, open-code
> vmemmap_populate_address() now that no caller needs its returned PTE, and
> add a warning for inconsistent zone initialization of shared tail vmemmap
> pages.
>
> This is the fourth smaller step toward the broader HVO generalization.
> After this series, HugeTLB and Device DAX use the same population model
> instead of parallel generic paths, while powerpc keeps its
> architecture-specific implementation.
Thanks, I've updated mm-unstable to this version, including the -fix.
> v4:
> - Rebase onto mm-new commit d5207c6d152c, which contains v6 of the Device
> DAX section-based vmemmap series.
> - Factor the zone mismatch check into a local helper as suggested by Mike
> Rapoport.
> - Collect Reviewed-by tags from Lance Yang.
Here's how v4 altered mm.git:
mm/mm_init.c | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
--- a/mm/mm_init.c~b
+++ a/mm/mm_init.c
@@ -593,6 +593,15 @@ out:
node_states[N_MEMORY] = saved_node_state;
}
+static inline void vmemmap_optimization_verify_zone(struct page *page)
+{
+ const unsigned int order = pfn_to_section_compound_order(page_to_pfn(page));
+
+ VM_WARN_ON_ONCE(vmemmap_optimizable_order(order) &&
+ page_zone_id(page + VMEMMAP_OPTIMIZATION_NR_STRUCT_PAGES) !=
+ page_zone_id(page));
+}
+
void __meminit __init_single_page(struct page *page, unsigned long pfn,
unsigned long zone, int nid)
{
@@ -609,9 +618,11 @@ void __meminit __init_single_page(struct
if (!is_highmem_idx(zone))
set_page_address(page, __va(pfn << PAGE_SHIFT));
#endif
- VM_WARN_ON_ONCE(vmemmap_optimizable_order(pfn_to_section_compound_order(pfn)) &&
- page_zone_id(page + VMEMMAP_OPTIMIZATION_NR_STRUCT_PAGES) !=
- page_zone_id(page));
+ /*
+ * Shared tail struct pages are initialized during vmemmap population,
+ * before retained struct pages reach here.
+ */
+ vmemmap_optimization_verify_zone(page);
}
#ifdef CONFIG_NUMA
_
prev parent reply other threads:[~2026-10-10 20:42 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-10 7:57 Muchun Song
2026-10-10 7:57 ` [PATCH v4 1/6] mm/sparse-vmemmap: drop VMEMMAP_POPULATE_DAX Muchun Song
2026-10-10 7:57 ` [PATCH v4 2/6] mm/sparse-vmemmap: support device DAX in common vmemmap path Muchun Song
2026-10-10 7:57 ` [PATCH v4 3/6] mm/sparse-vmemmap: drop Device DAX-specific population path Muchun Song
2026-10-10 8:37 ` Muchun Song
2026-10-10 7:57 ` [PATCH v4 4/6] mm/sparse-vmemmap: remove the unused ptpfn argument Muchun Song
2026-10-10 7:57 ` [PATCH v4 5/6] mm/sparse-vmemmap: open-code vmemmap_populate_address() Muchun Song
2026-10-10 7:57 ` [PATCH v4 6/6] mm/mm_init: add zone mismatch warning during page init Muchun Song
2026-10-10 9:32 ` Muchun Song
2026-10-10 9:58 ` Mike Rapoport
2026-10-10 10:33 ` Muchun Song
2026-10-10 11:55 ` [PATCH] fixup! " Muchun Song
2026-10-10 20:42 ` Andrew Morton [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=20261010134222.b6fdcb20d8fec5aaceab66ec@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=chleroy@kernel.org \
--cc=david@kernel.org \
--cc=lance.yang@linux.dev \
--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=mhocko@suse.com \
--cc=mpe@ellerman.id.au \
--cc=muchun.song@linux.dev \
--cc=npiggin@gmail.com \
--cc=qi.zheng@linux.dev \
--cc=ritesh.list@gmail.com \
--cc=rppt@kernel.org \
--cc=songmuchun@bytedance.com \
--cc=sshegde@linux.ibm.com \
--cc=surenb@google.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
all inboxes | Powered by JetHome®