From: "Brendan Jackman" <brendan.jackman@linux.dev>
To: "Suren Baghdasaryan" <surenb@google.com>,
"Brendan Jackman" <jackmanb@google.com>
Cc: "Andrew Morton" <akpm@linux-foundation.org>,
"Vlastimil Babka" <vbabka@kernel.org>,
"Michal Hocko" <mhocko@suse.com>,
"Johannes Weiner" <hannes@cmpxchg.org>, "Zi Yan" <ziy@nvidia.com>,
"Muchun Song" <muchun.song@linux.dev>,
"Oscar Salvador" <osalvador@suse.de>,
"David Hildenbrand" <david@kernel.org>,
"Lorenzo Stoakes" <ljs@kernel.org>,
"Liam R. Howlett" <liam@infradead.org>,
"Mike Rapoport" <rppt@kernel.org>,
"Matthew Brost" <matthew.brost@intel.com>,
"Joshua Hahn" <joshua.hahnjy@gmail.com>,
"Rakie Kim" <rakie.kim@sk.com>,
"Byungchul Park" <byungchul@sk.com>,
"Ying Huang" <ying.huang@linux.alibaba.com>,
"Alistair Popple" <apopple@nvidia.com>,
"Hao Li" <hao.li@linux.dev>, "Christoph Lameter" <cl@gentwo.org>,
"David Rientjes" <rientjes@google.com>,
"Roman Gushchin" <roman.gushchin@linux.dev>,
"Sebastian Andrzej Siewior" <bigeasy@linutronix.de>,
"Clark Williams" <clrkwllms@kernel.org>,
"Steven Rostedt" <rostedt@goodmis.org>,
"Harry Yoo (Oracle)" <harry@kernel.org>,
"Gregory Price" <gourry@gourry.net>,
"Alexei Starovoitov" <ast@kernel.org>,
"Matthew Wilcox" <willy@infradead.org>, <linux-mm@kvack.org>,
<linux-kernel@vger.kernel.org>, <linux-rt-devel@lists.linux.dev>
Subject: Re: [PATCH v2 03/13] mm/page_alloc: unify __alloc_frozen_pages[_nolock]_noprof()
Date: Wed, 24 Jun 2026 16:24:16 +0000 [thread overview]
Message-ID: <DJHF3BKSTZ8M.15Q62P3TSDLVH@linux.dev> (raw)
In-Reply-To: <CAJuCfpE28TqZy2k5-X1ZEdd0HhTuc5i7+0kyxX5nXH4j+5JVfw@mail.gmail.com>
On Wed Jun 24, 2026 at 4:00 PM UTC, Suren Baghdasaryan wrote:
> On Mon, Jun 22, 2026 at 3:02 AM Brendan Jackman <jackmanb@google.com> wrote:
>>
>> Currently the core allocator code is controlled by ALLOC_NOLOCK, but the
>> main entry point function is significantly different from the normal
>> __alloc_frozen_pages_nolock(), this is tiring when reading the code.
>>
>> Plumb the ALLOC_NOLOCK control one layer up in the call stack: create
>> an alloc_flags argument to __alloc_frozen_pages_nolock() (which is only
>> exposed to mm/) and then turn the nolock variant into a thin wrapper
>> that just sets that flag (as well as handling NUMA_NO_NODE, similar to
>> how some of the wrappers in gfp.h do).
>>
>> Rationale that this doesn't change anything:
>>
>> 1. Simple bits: A bunch of the nolock-specific handling is just moved to
>> the new alloc_order_allowed(), alloc_trylock_allowed() and
>> gfp_trylock.
>>
>> 2. __alloc_frozen_pages_noprof() has some extra logic that wasn't
>> previously in the nolock variant:
>>
>> a. Application of gfp_allowed_mask; this only affects early boot, and
>> only flags that affect the slowpath get changed here.
>>
>> b. Application of current_gfp_context() - also only affects the
>> slowpath
>>
>> 3. The slowpath itself: this is now just explicitly skipped under
>> !ALLOC_TRYLOCK.
>>
>> Ulterior motive: adding an alloc_flags arg to the allocator's
>> mm-internal entrypoint can later be used to do more allocation
>> customisation without needing to create new GFP flags.
>
> Looks like a nice overall cleanup.
>
>>
>> While adding this flag to a bunch of places, create ALLOC_DEFAULT to
>> avoid a mysterious literal 0 in most places. alloc_frozen_pages_noprof()
>> is defined above the alloc flags so just leave that as a slightly messy
>> exception instead of trying to fully reorder mm/internal.h for that one
>> case.
>
> Moving the whole alloc_frozen_pages() block down seems simple enough
> and would avoid special-casing this.
Yeah... when you put it like that, I don't actually know why I was so
intimidated by the prospect of moving a handful of function
declarations!
Anyway in the v3 I'm creating a new mm/page_alloc.h so this will happen
as a side effect of that.
next prev parent reply other threads:[~2026-06-24 16:24 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-22 10:01 [PATCH v2 00/13] mm: Some cleanups for page allocator APIs Brendan Jackman
2026-06-22 10:01 ` [PATCH v2 01/13] mm/page_alloc: rename ALLOC_TRYLOCK -> ALLOC_NOLOCK Brendan Jackman
2026-06-24 14:39 ` Suren Baghdasaryan
2026-06-22 10:01 ` [PATCH v2 02/13] mm/page_alloc: some renames to clarify alloc_flags scopes Brendan Jackman
2026-06-24 15:03 ` Suren Baghdasaryan
2026-06-24 16:13 ` Brendan Jackman
2026-06-22 10:01 ` [PATCH v2 03/13] mm/page_alloc: unify __alloc_frozen_pages[_nolock]_noprof() Brendan Jackman
2026-06-24 16:00 ` Suren Baghdasaryan
2026-06-24 16:24 ` Brendan Jackman [this message]
2026-06-22 10:01 ` [PATCH v2 04/13] mm/page_alloc: relax GFP WARN in nolock allocs Brendan Jackman
2026-06-24 16:04 ` Suren Baghdasaryan
2026-06-22 10:01 ` [PATCH v2 05/13] perf/x86/intel: Use higher-level allocator Brendan Jackman
2026-06-22 10:10 ` sashiko-bot
2026-06-22 10:19 ` Brendan Jackman
2026-06-24 16:11 ` Suren Baghdasaryan
2026-06-22 10:01 ` [PATCH v2 06/13] KVM: VMX: " Brendan Jackman
2026-06-22 10:10 ` sashiko-bot
2026-06-22 10:21 ` Brendan Jackman
2026-06-22 23:04 ` Sean Christopherson
2026-06-23 0:29 ` Yosry Ahmed
2026-06-24 16:14 ` Suren Baghdasaryan
2026-06-24 16:19 ` Brendan Jackman
2026-06-22 10:01 ` [PATCH v2 07/13] x86/virt: " Brendan Jackman
2026-06-22 10:12 ` sashiko-bot
2026-06-22 10:22 ` Brendan Jackman
2026-06-22 10:01 ` [PATCH v2 08/13] sgi-xp: " Brendan Jackman
2026-06-22 10:15 ` sashiko-bot
2026-06-22 10:20 ` Greg Kroah-Hartman
2026-06-22 10:01 ` [PATCH v2 09/13] net/funeth: Switch to " Brendan Jackman
2026-06-22 10:11 ` sashiko-bot
2026-06-22 10:22 ` Brendan Jackman
2026-06-24 16:18 ` Suren Baghdasaryan
2026-06-22 10:01 ` [PATCH v2 10/13] mm: Remove __alloc_pages_node() Brendan Jackman
2026-06-22 10:17 ` sashiko-bot
2026-06-22 10:28 ` Brendan Jackman
2026-06-24 16:24 ` Suren Baghdasaryan
2026-06-22 10:01 ` [PATCH v2 11/13] alloc_tag: Move to mm/ Brendan Jackman
2026-06-23 17:28 ` Lorenzo Stoakes
2026-06-23 23:48 ` Suren Baghdasaryan
2026-06-24 15:11 ` Lorenzo Stoakes
2026-06-22 10:01 ` [PATCH v2 12/13] mm: Move __alloc_pages() to mm/internal.h Brendan Jackman
2026-06-22 10:21 ` sashiko-bot
2026-06-22 11:14 ` Brendan Jackman
2026-06-23 6:50 ` Hao Ge
2026-06-23 9:30 ` Brendan Jackman
2026-06-23 9:38 ` Hao Ge
2026-06-24 16:27 ` Suren Baghdasaryan
2026-06-22 12:24 ` David Hildenbrand (Arm)
2026-06-22 13:05 ` Lorenzo Stoakes
2026-06-22 13:07 ` Brendan Jackman
2026-06-22 14:30 ` David Hildenbrand (Arm)
2026-06-22 10:01 ` [PATCH v2 13/13] mm: remove __GFP_NO_CODETAG Brendan Jackman
2026-06-23 7:56 ` Hao Ge
2026-06-23 9:31 ` Brendan Jackman
2026-06-24 16:47 ` Suren Baghdasaryan
2026-06-22 10:05 ` [PATCH v2 00/13] mm: Some cleanups for page allocator APIs Vlastimil Babka (SUSE)
2026-06-22 13:08 ` Lorenzo Stoakes
2026-06-22 13:15 ` Brendan Jackman
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=DJHF3BKSTZ8M.15Q62P3TSDLVH@linux.dev \
--to=brendan.jackman@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=apopple@nvidia.com \
--cc=ast@kernel.org \
--cc=bigeasy@linutronix.de \
--cc=byungchul@sk.com \
--cc=cl@gentwo.org \
--cc=clrkwllms@kernel.org \
--cc=david@kernel.org \
--cc=gourry@gourry.net \
--cc=hannes@cmpxchg.org \
--cc=hao.li@linux.dev \
--cc=harry@kernel.org \
--cc=jackmanb@google.com \
--cc=joshua.hahnjy@gmail.com \
--cc=liam@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-rt-devel@lists.linux.dev \
--cc=ljs@kernel.org \
--cc=matthew.brost@intel.com \
--cc=mhocko@suse.com \
--cc=muchun.song@linux.dev \
--cc=osalvador@suse.de \
--cc=rakie.kim@sk.com \
--cc=rientjes@google.com \
--cc=roman.gushchin@linux.dev \
--cc=rostedt@goodmis.org \
--cc=rppt@kernel.org \
--cc=surenb@google.com \
--cc=vbabka@kernel.org \
--cc=willy@infradead.org \
--cc=ying.huang@linux.alibaba.com \
--cc=ziy@nvidia.com \
/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.