Re: [PATCH net-next v4 4/5] page_pool: remove PP_FLAG_PAGE_FRAG flag

From: Jakub Kicinski
Date: Fri Jun 16 2023 - 15:26:02 EST


On Fri, 16 Jun 2023 20:59:12 +0200 Jesper Dangaard Brouer wrote:
> + if (mem_type == MEM_TYPE_PP_NETMEM)
> + pp_netmem_put_page(pp, page, allow_direct);
> + else
> + page_pool_put_full_page(pp, page, allow_direct);

Interesting, what is the netmem type? I was thinking about extending
page pool for other mem providers and what came to mind was either
optionally replacing the free / alloc with a function pointer:

https://github.com/torvalds/linux/commit/578ebda5607781c0abb26c1feae7ec8b83840768

or wrapping the PP calls with static inlines which can direct to
a different implementation completely (like zctap / io_uring zc).

Former is better for huge pages, latter is better for IO mem
(peer-to-peer DMA). I wonder if you have different use case which
requires a different model :(