[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7c8b9d7f-545c-4e37-8d0e-39b1d525a949@gmail.com>
Date: Sat, 12 Jul 2025 16:09:13 +0100
From: Pavel Begunkov <asml.silence@...il.com>
To: David Hildenbrand <david@...hat.com>, Byungchul Park <byungchul@...com>,
Mina Almasry <almasrymina@...gle.com>,
"willy@...radead.org" <willy@...radead.org>
Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org, linux-mm@...ck.org,
kernel_team@...ynix.com, kuba@...nel.org, ilias.apalodimas@...aro.org,
harry.yoo@...cle.com, hawk@...nel.org, akpm@...ux-foundation.org,
davem@...emloft.net, john.fastabend@...il.com, andrew+netdev@...n.ch,
toke@...hat.com, tariqt@...dia.com, edumazet@...gle.com, pabeni@...hat.com,
saeedm@...dia.com, leon@...nel.org, ast@...nel.org, daniel@...earbox.net,
lorenzo.stoakes@...cle.com, Liam.Howlett@...cle.com, vbabka@...e.cz,
rppt@...nel.org, surenb@...gle.com, mhocko@...e.com, horms@...nel.org,
linux-rdma@...r.kernel.org, bpf@...r.kernel.org, vishal.moola@...il.com,
hannes@...xchg.org, ziy@...dia.com, jackmanb@...gle.com
Subject: Re: [PATCH net-next v9 3/8] page_pool: access ->pp_magic through
struct netmem_desc in page_pool_page_is_pp()
On 7/12/25 15:52, David Hildenbrand wrote:
> On 12.07.25 15:58, Pavel Begunkov wrote:
>> On 7/11/25 02:14, Byungchul Park wrote:
>> ...>>> +#ifdef CONFIG_PAGE_POOL
>>>>> +/* XXX: This would better be moved to mm, once mm gets its way to
>>>>> + * identify the type of page for page pool.
>>>>> + */
>>>>> +static inline bool page_pool_page_is_pp(struct page *page)
>>>>> +{
>>>>> + struct netmem_desc *desc = page_to_nmdesc(page);
>>>>> +
>>>>> + return (desc->pp_magic & PP_MAGIC_MASK) == PP_SIGNATURE;
>>>>> +}
>>>>
>>>> pages can be pp pages (where they have pp fields inside of them) or
>>>> non-pp pages (where they don't have pp fields inside them, because
>>>> they were never allocated from the page_pool).
>>>>
>>>> Casting a page to a netmem_desc, and then checking if the page was a
>>>> pp page doesn't makes sense to me on a fundamental level. The
>>>> netmem_desc is only valid if the page was a pp page in the first
>>>> place. Maybe page_to_nmdesc should reject the cast if the page is not
>>>> a pp page or something.
>>>
>>> Right, as you already know, the current mainline code already has the
>>> same problem but we've been using the werid way so far, in other words,
>>> mm code is checking if it's a pp page or not by using ->pp_magic, but
>>> it's ->lur, ->buddy_list, or ->pcp_list if it's not a pp page.
>>>
>>> Both the mainline code and this patch can make sense *only if* it's
>>> actually a pp page. It's unevitable until mm provides a way to identify
>>> the type of page for page pool. Thoughts?
>> Question to mm folks, can we add a new PGTY for page pool and use
>> that to filter page pool originated pages? Like in the incomplete
>> and untested diff below?
>
> https://lore.kernel.org/all/77c6a6dd-0e03-4b81-a9c7-eaecaa4ebc0b@redhat.com/
Great, then it'll be the right thing to do here. I somehow missed
the post, will add your suggested-by.
--
Pavel Begunkov
Powered by blists - more mailing lists