[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Y763vcTFUZvWNgYv@casper.infradead.org>
Date: Wed, 11 Jan 2023 13:21:01 +0000
From: Matthew Wilcox <willy@...radead.org>
To: Yunsheng Lin <linyunsheng@...wei.com>
Cc: Jesper Dangaard Brouer <hawk@...nel.org>,
Ilias Apalodimas <ilias.apalodimas@...aro.org>,
netdev@...r.kernel.org, linux-mm@...ck.org,
Shakeel Butt <shakeelb@...gle.com>
Subject: Re: [PATCH v3 00/26] Split netmem from struct page
On Wed, Jan 11, 2023 at 04:25:46PM +0800, Yunsheng Lin wrote:
> On 2023/1/11 12:21, Matthew Wilcox (Oracle) 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.
>
> As page pool is only used for rx side in the net stack depending on the
> driver, a lot more memory for the net stack is from page_frag_alloc_align(),
> kmem cache, etc.
> naming it netmem seems a little overkill, perhaps a more specific name for
> the page pool? such as pp_cache.
>
> @Jesper & Ilias
> Any better idea?
> And it seem some API may need changing too, as we are not pooling 'pages'
> now.
I raised the question of naming in v1, six weeks ago, and nobody had
any better names. Seems a little unfair to ignore the question at first
and then bring it up now. I'd hate to miss the merge window because of
a late-breaking major request like this.
https://lore.kernel.org/netdev/20221130220803.3657490-1-willy@infradead.org/
I'd like to understand what we think we'll do in networking when we trim
struct page down to a single pointer, All these usages that aren't from
page_pool -- what information does networking need to track per-allocation?
Would it make sense for the netmem to describe all memory used by the
networking stack, and have allocators other than page_pool also return
netmem, or does the normal usage of memory in the net stack not need to
track that information?
> > Matthew Wilcox (Oracle) (26):
> > netmem: Create new type
> > netmem: Add utility functions
> > page_pool: Add netmem_set_dma_addr() and netmem_get_dma_addr()
> > page_pool: Convert page_pool_release_page() to
> > page_pool_release_netmem()
> > page_pool: Start using netmem in allocation path.
> ^
> nit: there is a '.' at the end of patch titile.
Thanks, I'll fix that for v4.
Powered by blists - more mailing lists