Subject: Re: [RFC mm v5 1/2] page_pool: check nmdesc->pp to see its usage as page pool for net_iov not page-backed

From: Byungchul Park <[email-masked]>
Date: Mon, 10 Nov 2025 10:09:26 +0900

On Fri, Nov 07, 2025 at 06:37:12PM -0800, Jakub Kicinski wrote:
> On Sat, 8 Nov 2025 11:24:58 +0900 Byungchul Park wrote:
> > On Fri, Nov 07, 2025 at 05:41:29PM -0800, Jakub Kicinski wrote:
> > > On Fri, 7 Nov 2025 13:47:08 +0900 Byungchul Park wrote:
> > > > The offset of page_type in struct page cannot be used in struct net_iov
> > > > for the same purpose, since the offset in struct net_iov is for storing
> > > > (struct net_iov_area *)owner.
> > >
> > > owner does not have to be at a fixed offset. Can we not move owner
> > > to _pp_mapping_pad ? Or reorder it with type, enum net_iov_type
> > > only has 2 values we can smoosh it with page_type easily.
> >
> > I'm still confused.  I think you probably understand what this work is
> > for.  (I've explained several times with related links.)  Or am I
> > missing something from your questions?
> >
> > I've answered your question directly since you asked, but the point is
> > that, struct net_iov will no longer overlay on struct page.
> >
> > Instead, struct netmem_desc will be responsible for keeping the pp
> > fields while struct page will lay down the resonsibility, once the pp
> > fields will be removed from struct page like:
> 
> I understand the end goal. I don't understand why patch 1 is a step
> in that direction, and you seem incapable of explaining it. So please
> either follow my suggestion on how to proceed with patch 2 without

struct page and struct netmem_desc should keep difference information.
Even though they are sharing some fields at the moment, it should
eventually be decoupled, which I'm working on now.

> patch 1 in current form. Or come back when have the full conversion
> ready.

This patch set represents the final phase of the full conversion process,
awaiting the next steps. Once this patch is completed, the entire
conversion will be finished, allowing for the final patch that removes
the pp fields from the struct page to be carried out.

	Byungchul