From: Byungchul Park <byungchul@sk.com>
To: Mina Almasry <almasrymina@google.com>
Cc: willy@infradead.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, kernel_team@skhynix.com, kuba@kernel.org,
ilias.apalodimas@linaro.org, harry.yoo@oracle.com,
hawk@kernel.org, akpm@linux-foundation.org, davem@davemloft.net,
john.fastabend@gmail.com, andrew+netdev@lunn.ch,
asml.silence@gmail.com, toke@redhat.com, tariqt@nvidia.com,
edumazet@google.com, pabeni@redhat.com, saeedm@nvidia.com,
leon@kernel.org, ast@kernel.org, daniel@iogearbox.net,
david@redhat.com, lorenzo.stoakes@oracle.com,
Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org,
surenb@google.com, mhocko@suse.com, horms@kernel.org,
linux-rdma@vger.kernel.org, bpf@vger.kernel.org,
vishal.moola@gmail.com, netdev@vger.kernel.org
Subject: Re: [RFC v4 00/18] Split netmem from struct page
Date: Mon, 9 Jun 2025 13:22:55 +0900 [thread overview]
Message-ID: <20250609042255.GA43325@system.software.com> (raw)
In-Reply-To: <CAHS8izPNKe+3A9HAk13idouEzvePnp5Tih0GmSQNzEcsxuvoPA@mail.gmail.com>
On Thu, Jun 05, 2025 at 12:55:30PM -0700, Mina Almasry wrote:
> On Tue, Jun 3, 2025 at 8:23 PM Byungchul Park <byungchul@sk.com> wrote:
> >
> > On Wed, Jun 04, 2025 at 11:52:28AM +0900, Byungchul Park wrote:
> > > The MM subsystem is trying to reduce struct page to a single pointer.
> > > The first step towards that is splitting struct page by its individual
> > > users, as has already been done with folio and slab. This patchset does
> > > that for netmem which is used for page pools.
> > >
> > > Matthew Wilcox tried and stopped the same work, you can see in:
> > >
> > > https://lore.kernel.org/linux-mm/20230111042214.907030-1-willy@infradead.org/
> > >
> > > Mina Almasry already has done a lot fo prerequisite works by luck. I
> > > stacked my patches on the top of his work e.i. netmem.
> > >
> > > I focused on removing the page pool members in struct page this time,
> > > not moving the allocation code of page pool from net to mm. It can be
> > > done later if needed.
> > >
> > > The final patch removing the page pool fields will be submitted once
> > > all the converting work of page to netmem are done:
> > >
> > > 1. converting of libeth_fqe by Tony Nguyen.
> > > 2. converting of mlx5 by Tariq Toukan.
> > > 3. converting of prueth_swdata (on me).
> > > 4. converting of freescale driver (on me).
> > >
> > > For our discussion, I'm sharing what the final patch looks like the
> > > following.
> >
> > To Willy and Mina,
> >
> > I believe this version might be the final version. Please check the
> > direction if it's going as you meant so as to go ahead convinced.
> >
> > As I mentioned above, the final patch should be submitted later once all
> > the required works on drivers are done, but you can check what it looks
> > like, in the following embedded patch in this cover letter.
> >
>
> We need this tested with at least 1 of devmem TCP and io_uring zc to
> make sure the net_iov stuff isn't broken (I'll get to that when I have
> time).
>
> And we need page_pool benchmark numbers before/after this series,
> please run those yourself, if at all possible:
I'm trying but it keeps conflicting on several steps.. Please share a
better manual.
Byungchul
> https://lore.kernel.org/netdev/20250525034354.258247-1-almasrymina@google.com/
>
> This series adds a bunch of netmem/page casts. I expect them not to
> affect fast-path perf, but making sure would be nice.
>
> --
> Thanks,
> Mina
next prev parent reply other threads:[~2025-06-09 4:23 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-04 2:52 [RFC v4 00/18] Split netmem from struct page Byungchul Park
2025-06-04 2:52 ` [RFC v4 01/18] netmem: introduce struct netmem_desc mirroring " Byungchul Park
2025-06-04 16:53 ` Toke Høiland-Jørgensen
2025-06-05 10:03 ` Pavel Begunkov
2025-06-05 10:04 ` Pavel Begunkov
2025-06-05 19:34 ` Mina Almasry
2025-06-04 2:52 ` [RFC v4 02/18] netmem: introduce netmem alloc APIs to wrap page alloc APIs Byungchul Park
2025-06-04 15:14 ` Suren Baghdasaryan
2025-06-05 0:53 ` Byungchul Park
2025-06-05 10:05 ` Pavel Begunkov
2025-06-04 2:52 ` [RFC v4 03/18] page_pool: use netmem alloc/put APIs in __page_pool_alloc_page_order() Byungchul Park
2025-06-04 16:54 ` Toke Høiland-Jørgensen
2025-06-05 10:26 ` Pavel Begunkov
2025-06-05 19:39 ` Mina Almasry
2025-06-05 20:27 ` Pavel Begunkov
2025-06-05 20:34 ` Mina Almasry
2025-06-04 2:52 ` [RFC v4 04/18] page_pool: rename __page_pool_alloc_page_order() to __page_pool_alloc_netmem_order() Byungchul Park
2025-06-04 16:54 ` Toke Høiland-Jørgensen
2025-06-05 10:28 ` Pavel Begunkov
2025-06-04 2:52 ` [RFC v4 05/18] page_pool: use netmem alloc/put APIs in __page_pool_alloc_pages_slow() Byungchul Park
2025-06-04 17:02 ` Toke Høiland-Jørgensen
2025-06-05 10:30 ` Pavel Begunkov
2025-06-04 2:52 ` [RFC v4 06/18] page_pool: rename page_pool_return_page() to page_pool_return_netmem() Byungchul Park
2025-06-04 17:03 ` Toke Høiland-Jørgensen
2025-06-05 10:31 ` Pavel Begunkov
2025-06-04 2:52 ` [RFC v4 07/18] page_pool: use netmem put API in page_pool_return_netmem() Byungchul Park
2025-06-04 16:54 ` Toke Høiland-Jørgensen
2025-06-05 10:33 ` Pavel Begunkov
2025-06-04 2:52 ` [RFC v4 08/18] page_pool: rename __page_pool_release_page_dma() to __page_pool_release_netmem_dma() Byungchul Park
2025-06-04 16:55 ` Toke Høiland-Jørgensen
2025-06-05 10:34 ` Pavel Begunkov
2025-06-04 2:52 ` [RFC v4 09/18] page_pool: rename __page_pool_put_page() to __page_pool_put_netmem() Byungchul Park
2025-06-04 16:55 ` Toke Høiland-Jørgensen
2025-06-05 10:35 ` Pavel Begunkov
2025-06-05 10:39 ` Pavel Begunkov
2025-06-04 2:52 ` [RFC v4 10/18] page_pool: rename __page_pool_alloc_pages_slow() to __page_pool_alloc_netmems_slow() Byungchul Park
2025-06-04 17:03 ` Toke Høiland-Jørgensen
2025-06-04 2:52 ` [RFC v4 11/18] mlx4: use netmem descriptor and APIs for page pool Byungchul Park
2025-06-04 2:52 ` [RFC v4 12/18] netmem: use _Generic to cover const casting for page_to_netmem() Byungchul Park
2025-06-04 16:55 ` Toke Høiland-Jørgensen
2025-06-05 10:40 ` Pavel Begunkov
2025-06-04 2:52 ` [RFC v4 13/18] netmem: remove __netmem_get_pp() Byungchul Park
2025-06-04 16:56 ` Toke Høiland-Jørgensen
2025-06-05 10:41 ` Pavel Begunkov
2025-06-04 2:52 ` [RFC v4 14/18] page_pool: make page_pool_get_dma_addr() just wrap page_pool_get_dma_addr_netmem() Byungchul Park
2025-06-04 16:57 ` Toke Høiland-Jørgensen
2025-06-05 10:45 ` Pavel Begunkov
2025-06-04 2:52 ` [RFC v4 15/18] netdevsim: use netmem descriptor and APIs for page pool Byungchul Park
2025-06-04 2:52 ` [RFC v4 16/18] netmem: introduce a netmem API, virt_to_head_netmem() Byungchul Park
2025-06-04 16:59 ` Toke Høiland-Jørgensen
2025-06-05 10:45 ` Pavel Begunkov
2025-06-05 19:43 ` Mina Almasry
2025-06-04 2:52 ` [RFC v4 17/18] mt76: use netmem descriptor and APIs for page pool Byungchul Park
2025-06-04 2:52 ` [RFC v4 18/18] page_pool: access ->pp_magic through struct netmem_desc in page_pool_page_is_pp() Byungchul Park
2025-06-04 16:59 ` Toke Høiland-Jørgensen
2025-06-05 10:56 ` Pavel Begunkov
2025-06-05 11:49 ` Harry Yoo
2025-06-05 12:17 ` Harry Yoo
2025-06-05 13:28 ` Pavel Begunkov
2025-06-05 19:47 ` Mina Almasry
2025-06-05 20:16 ` Pavel Begunkov
2025-06-04 3:23 ` [RFC v4 00/18] Split netmem from struct page Byungchul Park
2025-06-05 19:55 ` Mina Almasry
2025-06-09 4:22 ` Byungchul Park [this message]
2025-06-09 7:53 ` Byungchul Park
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=20250609042255.GA43325@system.software.com \
--to=byungchul@sk.com \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=almasrymina@google.com \
--cc=andrew+netdev@lunn.ch \
--cc=asml.silence@gmail.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=david@redhat.com \
--cc=edumazet@google.com \
--cc=harry.yoo@oracle.com \
--cc=hawk@kernel.org \
--cc=horms@kernel.org \
--cc=ilias.apalodimas@linaro.org \
--cc=john.fastabend@gmail.com \
--cc=kernel_team@skhynix.com \
--cc=kuba@kernel.org \
--cc=leon@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-rdma@vger.kernel.org \
--cc=lorenzo.stoakes@oracle.com \
--cc=mhocko@suse.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=rppt@kernel.org \
--cc=saeedm@nvidia.com \
--cc=surenb@google.com \
--cc=tariqt@nvidia.com \
--cc=toke@redhat.com \
--cc=vbabka@suse.cz \
--cc=vishal.moola@gmail.com \
--cc=willy@infradead.org \
/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.