Re: [PATCH v5 03/36] mm/page_alloc: let the bulk and folio allocators carry alloc_flags
[email protected] Tue, 21 Jul 2026 18:26:27 +0000
| Newsgroups | dev.linux.lists.nvdimm,dev.linux.lists.damon,org.kernel.vger.kvm,org.kernel.vger.linux-cxl |
|---|---|
| Message-ID | <[email protected]> |
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] The newly added `alloc_flags` parameter is ignored during the bulk allocation fastpath when calling `prep_new_page`. -- --- Patch [3]: [PATCH v5 03/36] mm/page_alloc: let the bulk and folio allocators carry alloc_flags --- commit 00718b17ea28c0a7382f9831d41a8a45df59e496 Author: Gregory Price <[email protected]> mm/page_alloc: let the bulk and folio allocators carry alloc_flags This commit threads the alloc_flags parameter through the bulk and folio allocators to allow callers to select specific allocator behavior. It updates __alloc_pages_bulk_noprof and __folio_alloc_noprof to accept and pass these flags internally. > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c [ ... ] > @@ -5238,11 +5239,19 @@ unsigned long alloc_pages_bulk_noprof(gfp_t gfp, int preferred_nid, > return nr_populated; > > failed: > - page = __alloc_pages_noprof(gfp, 0, preferred_nid, nodemask, ALLOC_DEFAULT); > + page = __alloc_pages_noprof(gfp, 0, preferred_nid, nodemask, alloc_flags); > if (page) > page_array[nr_populated++] = page; > goto out; > } [Severity: Medium] Will the fast path ignore the caller's new alloc_flags parameter? In the slow path fallback above, the code correctly passes the new alloc_flags parameter to __alloc_pages_noprof(). However, in the fast path batch allocation loop just above this hunk, the pages are still initialized with a hardcoded ALLOC_DEFAULT: __alloc_pages_bulk_noprof() { ... while (nr_populated < nr_pages) { ... page = __rmqueue_pcplist(...); ... prep_new_page(page, 0, gfp, ALLOC_DEFAULT); set_page_refcounted(page); page_array[nr_populated++] = page; } } If a caller passes custom alloc_flags to __alloc_pages_bulk_noprof(), it appears the flags will be dropped by the fast path but honored by the slow path, leading to inconsistent allocator behavior. Should prep_new_page() in the fast path loop be updated to use the provided alloc_flags instead of ALLOC_DEFAULT? -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=3