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@xxxxxxxxxxxxx/ 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.