Re: [RFC v4 18/18] page_pool: access ->pp_magic through struct netmem_desc in page_pool_page_is_pp()

Harry Yoo
2025-06-05T12:18:06Z

On Thu, Jun 05, 2025 at 08:49:07PM +0900, Harry Yoo wrote:
> On Thu, Jun 05, 2025 at 11:56:14AM +0100, Pavel Begunkov wrote:
> > On 6/4/25 03:52, Byungchul Park wrote:
> > > To simplify struct page, the effort to separate its own descriptor from
> > > struct page is required and the work for page pool is on going.
> > >
> > > To achieve that, all the code should avoid directly accessing page pool
> > > members of struct page.
> >
> > Just to clarify, are we leaving the corresponding struct page fields
> > for now until the final memdesc conversion is done?
>
> Yes, that's correct.

Oops, looks like misread it. If by "leaving the corresponding struct page
fields" you meant "leaving netmem fields in struct page", no.
It'll be removed.

> > If so, it might be better to leave the access in page_pool_page_is_pp()
> > to be "page->pp_magic", so that once removed the build fails until
> > the helper is fixed up to use the page->type or so.
>
> When we truly separate netmem from struct page, we won't have 'lru' field
> in memdesc (because not all types of memory are on LRU list),
> so NETMEM_DESC_ASSERT_OFFSET(lru, pp_magic) should fail.
>
> And then page_pool_page_is_pp() should be changed to check lower bits
> of memdesc pointer to identify its type.
>
> https://kernelnewbies.org/MatthewWilcox/Memdescs/Path
>
> --
> Cheers,
> Harry / Hyeonggon
>

--
Cheers,
Harry / Hyeonggon