From: sashiko-bot@kernel.org
To: "Muchun Song" <songmuchun@bytedance.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"David Hildenbrand" <david@kernel.org>,
"Oscar Salvador" <osalvador@suse.de>,
"Mike Rapoport" <rppt@kernel.org>
Cc: "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>,
"Muchun Song" <muchun.song@linux.dev>,
"James Houghton" <jthoughton@google.com>,
"Lance Yang" <lance.yang@linux.dev>,
"Qi Zheng" <qi.zheng@linux.dev>,
linux-mm@kvack.org
Subject: Re: [PATCH 11/11] mm/mm_init: move pageblock migratetype init to memmap helpers
Date: Mon, 09 Nov 2026 10:43:18 +0000 [thread overview]
Message-ID: <sashiko-outbox-204845@kernel.org> (raw)
In-Reply-To: <20261109095807.41547-12-songmuchun@bytedance.com>
Thank you for your contribution! Sashiko AI review found 1 potential
issue to consider:
- [Low] mm/mm_init: commit message cites nonexistent
memmap_init_page_frozen()
It also noticed 1 related pre-existing issue this patch does not
introduce:
- [Critical] mm: uninitialized migratetype in
pageblock_migratetype_init_range() [1]
--
commit e81bf248ba8e6f6857b5a558e23fdf0fa0e68ad6
Author: Muchun Song <muchun.song@linux.dev>
mm/mm_init: move pageblock migratetype init to memmap helpers
This commit moves MIGRATE_MOVABLE pageblock initialization into
memmap_init_compound_page_frozen() and memmap_init_zone_device_basepages(),
and removes hugetlb_bootmem_init_migratetype().
> Move the MIGRATE_MOVABLE pageblock initialization into the frozen memmap
> initialization helpers instead. This makes memmap_init_page_frozen()
> initialize the pageblock for single pages and
> memmap_init_compound_page_frozen() initialize the whole range for compound
> pages, so the ZONE_DEVICE and hugetlb bootmem paths can share the same
> initialization.
[Severity: Low]
This isn't a bug, but the commit message mentions a nonexistent
memmap_init_page_frozen() helper. The patch updates
memmap_init_zone_device_basepages() to initialize the pageblock range for
ZONE_DEVICE base pages instead.
> diff --git a/mm/mm_init.c b/mm/mm_init.c
> index 61a720bb44dce..e05db8abde2fd 100644
> --- a/mm/mm_init.c
> +++ b/mm/mm_init.c
> @@ -751,6 +751,9 @@ void __meminit memmap_init_compound_page_frozen(struct page *head,
> for (unsigned long i = 1; i < nr_pages; i++)
> memmap_init_page_from_template(head + i, pfn + i, zone, &template);
> prep_compound_head(head, order);
> +
> + pageblock_migratetype_init_range(pfn, 1UL << order, MIGRATE_MOVABLE,
> + /* isolate */ false, /* atomic */ false);
> }
>
> struct zone __meminit *pfn_to_zone(unsigned long pfn, int nid)
> @@ -1110,6 +1113,9 @@ static void memmap_init_zone_device_basepages(unsigned long start, unsigned long
> if (IS_ALIGNED(pfn, PAGES_PER_SECTION))
> cond_resched();
> }
> +
> + pageblock_migratetype_init_range(start, end - start, MIGRATE_MOVABLE,
> + /* isolate */ false, /* atomic */ false);
> }
[Severity: Critical]
This problem wasn't introduced by this patch, but can
pageblock_migratetype_init_range() leave the first partial pageblock's
migratetype uninitialized [1] when the starting PFN is not aligned to
a pageblock boundary?
mm/mm_init.c:pageblock_migratetype_init_range() {
...
for (pfn = pageblock_align(pfn); pfn < end; pfn += pageblock_nr_pages) {
enum migratetype mt = kho_bootmem_migratetype(pfn, migratetype);
init_pageblock_migratetype(pfn_to_page(pfn), mt, isolate);
...
}
pageblock_align(pfn) rounds the starting PFN upward to the next pageblock
boundary. When a caller such as ZONE_DEVICE initialization or memory
hotplug passes a range starting in the middle of a pageblock, the loop
skips that initial partial pageblock, leaving its pageblock flags
uninitialized.
[1] https://sashiko.dev/#/bug/linux-492df7cc-d097-43e5-9701-9954aee1d064
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261109095807.41547-1-songmuchun@bytedance.com?part=11
next prev parent reply other threads:[~2026-11-09 10:43 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-09 9:57 [PATCH 00/11] mm: Unify memmap initialization for compound pages Muchun Song
2026-11-09 9:57 ` [PATCH 01/11] mm/mm_init: verify zones for template-initialized pages Muchun Song
2026-11-12 16:18 ` Mike Rapoport
2026-11-09 9:57 ` [PATCH 02/11] mm/mm_init: factor out common struct page initialization Muchun Song
2026-11-09 10:43 ` sashiko-bot
2026-11-10 3:08 ` Muchun Song
2026-11-09 9:57 ` [PATCH 03/11] mm/mm_init: simplify zone device " Muchun Song
2026-11-09 9:57 ` [PATCH 04/11] mm/mm_init: factor out frozen compound " Muchun Song
2026-11-09 9:58 ` [PATCH 05/11] mm/hugetlb: drop boot-time HVO handling for gigantic folios Muchun Song
2026-11-09 10:43 ` sashiko-bot
2026-11-10 3:16 ` Muchun Song
2026-11-09 9:58 ` [PATCH 06/11] mm/hugetlb: initialize all struct pages for bootmem hugepages Muchun Song
2026-11-09 10:43 ` sashiko-bot
2026-11-10 3:23 ` Muchun Song
2026-11-09 9:58 ` [PATCH 07/11] mm/hugetlb: use common compound page initialization helper Muchun Song
2026-11-09 9:58 ` [PATCH 08/11] mm/mm_init: make __init_single_page() static Muchun Song
2026-11-09 9:58 ` [PATCH 09/11] mm/cma: centralize CMA pageblock initialization Muchun Song
2026-11-09 9:58 ` [PATCH 10/11] mm/cma: localize init_cma_pageblock() to cma.c Muchun Song
2026-11-09 9:58 ` [PATCH 11/11] mm/mm_init: move pageblock migratetype init to memmap helpers Muchun Song
2026-11-09 10:43 ` sashiko-bot [this message]
2026-11-10 3:55 ` Muchun Song
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=sashiko-outbox-204845@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=david@kernel.org \
--cc=jthoughton@google.com \
--cc=lance.yang@linux.dev \
--cc=liam@infradead.org \
--cc=linux-mm@kvack.org \
--cc=ljs@kernel.org \
--cc=mhocko@suse.com \
--cc=muchun.song@linux.dev \
--cc=osalvador@suse.de \
--cc=qi.zheng@linux.dev \
--cc=rppt@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=songmuchun@bytedance.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.