diff options
author | Lorenzo Bianconi <lorenzo@kernel.org> | 2024-02-12 12:50:54 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2024-02-14 06:22:30 +0300 |
commit | 2b0cfa6e49566c8fa6759734cf821aa6e8271a9e (patch) | |
tree | 63e4da18af22791b114ede9e63a68f2260cad85b /include/net/page_pool | |
parent | 32e4a5447ed9fa904a2dfcf4609c64bce053b4e8 (diff) | |
download | linux-2b0cfa6e49566c8fa6759734cf821aa6e8271a9e.tar.xz |
net: add generic percpu page_pool allocator
Introduce generic percpu page_pools allocator.
Moreover add page_pool_create_percpu() and cpuid filed in page_pool struct
in order to recycle the page in the page_pool "hot" cache if
napi_pp_put_page() is running on the same cpu.
This is a preliminary patch to add xdp multi-buff support for xdp running
in generic mode.
Acked-by: Jesper Dangaard Brouer <hawk@kernel.org>
Reviewed-by: Toke Hoiland-Jorgensen <toke@redhat.com>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://lore.kernel.org/r/80bc4285228b6f4220cd03de1999d86e46e3fcbd.1707729884.git.lorenzo@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/net/page_pool')
-rw-r--r-- | include/net/page_pool/types.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/net/page_pool/types.h b/include/net/page_pool/types.h index 76481c465375..3828396ae60c 100644 --- a/include/net/page_pool/types.h +++ b/include/net/page_pool/types.h @@ -128,6 +128,7 @@ struct page_pool_stats { struct page_pool { struct page_pool_params_fast p; + int cpuid; bool has_init_callback; long frag_users; @@ -203,6 +204,8 @@ struct page *page_pool_alloc_pages(struct page_pool *pool, gfp_t gfp); struct page *page_pool_alloc_frag(struct page_pool *pool, unsigned int *offset, unsigned int size, gfp_t gfp); struct page_pool *page_pool_create(const struct page_pool_params *params); +struct page_pool *page_pool_create_percpu(const struct page_pool_params *params, + int cpuid); struct xdp_mem_info; |