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: "Li Zhe" <lizhe.67@bytedance.com>,
"Andrew Popple" <apopple@nvidia.com>,
"Balbir Singh" <balbirs@nvidia.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>,
"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 v2 12/14] mm/cma: centralize CMA pageblock initialization
Date: Fri, 13 Nov 2026 04:07:33 +0000 [thread overview]
Message-ID: <sashiko-outbox-212157@kernel.org> (raw)
In-Reply-To: <20261113033442.62970-13-songmuchun@bytedance.com>
Thank you for your contribution! Sashiko AI review found 1 potential
issue to consider:
- [Medium] mm/cma: skipped and per-PFN managed page accounting in
cma_activate_area()
--
commit cd588f911bb59c4583e63d2e776ba252d0663161
Author: Muchun Song <muchun.song@linux.dev>
mm/cma: centralize CMA pageblock initialization
This commit moves the initialization of early-reserved CMA pageblocks from
hugetlb into cma_activate_area() and restores managed-page accounting for
those pages if CMA activation fails.
> diff --git a/mm/cma.c b/mm/cma.c
> index 9ec1d1fd5dff5..46e72734ba729 100644
> --- a/mm/cma.c
> +++ b/mm/cma.c
[ ... ]
> @@ -191,12 +195,13 @@ static void __init cma_activate_area(struct cma *cma)
> /* Expose all pages to the buddy, they are useless for CMA. */
> if (!test_bit(CMA_RESERVE_PAGES_ON_ERROR, &cma->flags)) {
> for (r = 0; r < cma->nranges; r++) {
> - unsigned long start_pfn;
> -
> cmr = &cma->ranges[r];
> - start_pfn = r <= allocrange ? early_pfn[r] : cmr->early_pfn;
> + end_pfn = r <= allocrange ? early_pfn[r] : cmr->early_pfn;
> + for (pfn = cmr->base_pfn; pfn < end_pfn; pfn++)
> + adjust_managed_page_count(pfn_to_page(pfn), 1);
> +
> end_pfn = cmr->base_pfn + cmr->count;
> - for (pfn = start_pfn; pfn < end_pfn; pfn++)
> + for (; pfn < end_pfn; pfn++)
> free_reserved_page(pfn_to_page(pfn));
> }
> }
[Severity: Medium]
Does gating the adjust_managed_page_count() loop on
!CMA_RESERVE_PAGES_ON_ERROR leave early-reserved gigantic hugetlb pages
unaccounted in zone->managed_pages and totalram_pages if CMA activation
fails?
When crashkernel=...,cma is used alongside hugetlb_cma,
hugetlb_cma_add_crashkernel_ranges() sets CMA_RESERVE_PAGES_ON_ERROR on
the hugetlb_cma area before hugetlb_bootmem_alloc() reserves gigantic
pages from it via cma_reserve_early(). gather_bootmem_prealloc_node()
always skips adjust_managed_page_count() for hugetlb_early_cma(h) folios,
and those folios remain active in the hugetlb pool even if
cma_activate_area() fails, so their managed page count needs to be
restored regardless of CMA_RESERVE_PAGES_ON_ERROR.
Also, calling adjust_managed_page_count(pfn_to_page(pfn), 1) once per base
PFN invokes setup_per_zone_lowmem_reserve() for every 4 KiB page (262,144
times per 1 GiB page) instead of stepping by pageblock_nr_pages or
adjusting by end_pfn - cmr->base_pfn.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261113033442.62970-1-songmuchun@bytedance.com?part=12
next prev parent reply other threads:[~2026-11-13 4:07 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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
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-212157@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=apopple@nvidia.com \
--cc=balbirs@nvidia.com \
--cc=david@kernel.org \
--cc=jthoughton@google.com \
--cc=lance.yang@linux.dev \
--cc=liam@infradead.org \
--cc=linux-mm@kvack.org \
--cc=lizhe.67@bytedance.com \
--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.