From: Harry Yoo <harry.yoo@oracle.com>
To: Jakub Kicinski <kuba@kernel.org>
Cc: Byungchul Park <byungchul@sk.com>,
willy@infradead.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
kernel_team@skhynix.com, almasrymina@google.com,
ilias.apalodimas@linaro.org, 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, hannes@cmpxchg.org, ziy@nvidia.com,
jackmanb@google.com
Subject: Re: [PATCH net-next v7 1/7] netmem: introduce struct netmem_desc mirroring struct page
Date: Mon, 14 Jul 2025 18:42:30 +0900 [thread overview]
Message-ID: <aHTQrso2Klvcwasf@hyeyoo> (raw)
In-Reply-To: <20250701164508.0738f00f@kernel.org>
On Tue, Jul 01, 2025 at 04:45:08PM -0700, Jakub Kicinski wrote:
> On Mon, 30 Jun 2025 08:34:48 +0900 Harry Yoo wrote:
> > > Ugh, you keep explaining the mechanics to me. Our goal here is not
> > > just to move fields around and make it still compile :/
> > >
> > > Let me ask you this way: you said "netmem_desc" will be allocated
> > > thru slab "shortly". How will calling the equivalent of page_address()
> > > on netmem_desc work at that stage? Feel free to refer me to the existing
> > > docs if its covered..
> >
> > https://kernelnewbies.org/MatthewWilcox/Memdescs/Path
> > https://kernelnewbies.org/MatthewWilcox/Memdescs
> >
> > May not be the exact document you're looking for,
> > but with this article I can imagine:
> >
> > - The ultimate goal is to shrink struct page to eventually from 64 bytes
> > to 8 bytes, by allocating only the minimum required metadata per 4k page
> > statically and moving the rest of metadata to dynamically-allocated
> > descriptors (netmem_desc, anon, file, ptdesc, zpdesc, etc.) using slab
> > at page allocation time.
> >
> > - We can't achieve that goal just yet, because several subsystems
> > still use struct page fields for their own purposes.
> >
> > To achieve that, each of these subsystems needs to define
> > its own descriptor, which, for now, overlays struct page, and should be
> > converted to use the new descriptor.
> >
> > Eventually, these descriptors will be allocated using slab.
> >
> > - For CPU-readable buffers, page->memdesc will point to a netmem_desc,
> > with a lower bit set indicating that it's a netmem_desc rather than
> > other type. Networking code will need to cast it to (netmem_desc *)
> > and dereference it to access networking specific fields.
> >
> > - The struct page array (vmemmap) will still be statically allocated
> > at boot time (or during memory hotplug time).
> > So no change in how page_address() works.
> >
> > net_iovs will continue to be not associated with struct pages,
> > as the buffers don't have corresponding struct pages.
> > net_iovs are already allocated using slab.
>
> Thanks a lot, this clarifies things for me.
You're welcome :)
> Unfortunately, I still think that it's hard to judge patches 1 and 7
> in context limited to this series, so let's proceed to reposting just
> the "middle 5" patches.
Could you please share your thoughts on why it's hard to judge them and
what's missing from the series, such as in the comments, changelog, or
the cover letter?
--
Cheers,
Harry / Hyeonggon
next prev parent reply other threads:[~2025-07-14 9:43 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-25 4:33 [PATCH net-next v7 0/7] Split netmem from struct page Byungchul Park
2025-06-25 4:33 ` [PATCH net-next v7 1/7] netmem: introduce struct netmem_desc mirroring " Byungchul Park
2025-06-27 0:49 ` Jakub Kicinski
2025-06-27 3:54 ` Byungchul Park
2025-06-28 0:37 ` Jakub Kicinski
2025-06-29 23:34 ` Harry Yoo
2025-07-01 23:45 ` Jakub Kicinski
2025-07-07 0:21 ` Byungchul Park
2025-07-07 18:42 ` Jakub Kicinski
2025-07-14 9:42 ` Harry Yoo [this message]
2025-07-14 13:24 ` Vlastimil Babka
2025-07-14 13:58 ` Harry Yoo
2025-07-15 1:47 ` Jakub Kicinski
2025-07-15 2:08 ` Byungchul Park
2025-07-15 10:23 ` Pavel Begunkov
2025-06-25 4:33 ` [PATCH net-next v7 2/7] page_pool: rename page_pool_return_page() to page_pool_return_netmem() Byungchul Park
2025-06-25 4:33 ` [PATCH net-next v7 3/7] page_pool: rename __page_pool_release_page_dma() to __page_pool_release_netmem_dma() Byungchul Park
2025-06-25 4:33 ` [PATCH net-next v7 4/7] page_pool: rename __page_pool_alloc_pages_slow() to __page_pool_alloc_netmems_slow() Byungchul Park
2025-06-25 4:33 ` [PATCH net-next v7 5/7] netmem: use _Generic to cover const casting for page_to_netmem() Byungchul Park
2025-06-25 4:33 ` [PATCH net-next v7 6/7] page_pool: make page_pool_get_dma_addr() just wrap page_pool_get_dma_addr_netmem() Byungchul Park
2025-06-25 4:33 ` [PATCH net-next v7 7/7] netmem: introduce a netmem API, virt_to_head_netmem() Byungchul Park
2025-06-27 0:49 ` Jakub Kicinski
2025-06-26 6:41 ` [PATCH net-next v7 0/7] Split netmem from struct page Byungchul Park
2025-06-27 0:50 ` Jakub Kicinski
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=aHTQrso2Klvcwasf@hyeyoo \
--to=harry.yoo@oracle.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=byungchul@sk.com \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=david@redhat.com \
--cc=edumazet@google.com \
--cc=hannes@cmpxchg.org \
--cc=hawk@kernel.org \
--cc=horms@kernel.org \
--cc=ilias.apalodimas@linaro.org \
--cc=jackmanb@google.com \
--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 \
--cc=ziy@nvidia.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).