[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250729010410.GC56089@system.software.com>
Date: Tue, 29 Jul 2025 10:04:10 +0900
From: Byungchul Park <byungchul@...com>
To: Pavel Begunkov <asml.silence@...il.com>
Cc: Mina Almasry <almasrymina@...gle.com>, linux-mm@...ck.org,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
kernel_team@...ynix.com, harry.yoo@...cle.com, ast@...nel.org,
daniel@...earbox.net, davem@...emloft.net, kuba@...nel.org,
hawk@...nel.org, john.fastabend@...il.com, sdf@...ichev.me,
saeedm@...dia.com, leon@...nel.org, tariqt@...dia.com,
mbloch@...dia.com, andrew+netdev@...n.ch, edumazet@...gle.com,
pabeni@...hat.com, akpm@...ux-foundation.org, david@...hat.com,
lorenzo.stoakes@...cle.com, Liam.Howlett@...cle.com, vbabka@...e.cz,
rppt@...nel.org, surenb@...gle.com, mhocko@...e.com,
horms@...nel.org, jackmanb@...gle.com, hannes@...xchg.org,
ziy@...dia.com, ilias.apalodimas@...aro.org, willy@...radead.org,
brauner@...nel.org, kas@...nel.org, yuzhao@...gle.com,
usamaarif642@...il.com, baolin.wang@...ux.alibaba.com,
toke@...hat.com, bpf@...r.kernel.org, linux-rdma@...r.kernel.org
Subject: Re: [PATCH v2] mm, page_pool: introduce a new page type for page
pool in page type
On Mon, Jul 28, 2025 at 07:49:30PM +0100, Pavel Begunkov wrote:
> On 7/28/25 19:39, Mina Almasry wrote:
> > On Mon, Jul 28, 2025 at 11:35 AM Pavel Begunkov <asml.silence@...il.com> wrote:
> > >
> > > On 7/28/25 06:27, Byungchul Park wrote:
> > > > Changes from v1:
> > > > 1. Rebase on linux-next.
> > >
> > > net-next is closed, looks like until August 11.
> > >
> > > > 2. Initialize net_iov->pp = NULL when allocating net_iov in
> > > > net_devmem_bind_dmabuf() and io_zcrx_create_area().
> > > > 3. Use ->pp for net_iov to identify if it's pp rather than
> > > > always consider net_iov as pp.
> > > > 4. Add Suggested-by: David Hildenbrand <david@...hat.com>.
> > >
> > > Oops, looks you killed my suggested-by tag now. Since it's still
> > > pretty much my diff spliced with David's suggestions, maybe
> > > Co-developed-by sounds more appropriate. Even more so goes for
> > > the second patch getting rid of __netmem_clear_lsb().
> > >
> > > Looks fine, just one comment below.
> > >
> > > ...> diff --git a/io_uring/zcrx.c b/io_uring/zcrx.c
> > > > index 100b75ab1e64..34634552cf74 100644
> > > > --- a/io_uring/zcrx.c
> > > > +++ b/io_uring/zcrx.c
> > > > @@ -444,6 +444,7 @@ static int io_zcrx_create_area(struct io_zcrx_ifq *ifq,
> > > > area->freelist[i] = i;
> > > > atomic_set(&area->user_refs[i], 0);
> > > > niov->type = NET_IOV_IOURING;
> > > > + niov->pp = NULL;
> > >
> > > It's zero initialised, you don't need it.
> > >
> >
> > This may be my bad since I said we should check if it's 0 initialized.
> >
> > It looks like on the devmem side as well we kvmalloc_array the niovs,
> > and if I'm checking through the helpers right, kvmalloc_array does
> > 0-initialize indeed.
>
> I wouldn't rely on that, it's just for zcrx I do:
>
> kvmalloc_array(..., GFP_KERNEL | __GFP_ZERO);
For net_devmem_bind_dmabuf(), __GFP_ZERO will add bigger overhead than
just assignment, 'niov->pp = NULL'.
I'd like to ask you if you are still good with __GFP_ZERO overhead
before going ahead.
Byungchul
>
> --
> Pavel Begunkov
Powered by blists - more mailing lists