| /linux-6.15/include/net/page_pool/ |
| H A D | helpers.h | 67 bool page_pool_get_stats(const struct page_pool *pool, 156 static inline struct page *page_pool_alloc(struct page_pool *pool, in page_pool_alloc() 184 static inline void *page_pool_alloc_va(struct page_pool *pool, in page_pool_alloc_va() 209 static inline void *page_pool_dev_alloc_va(struct page_pool *pool, in page_pool_dev_alloc_va() 225 page_pool_get_dma_dir(const struct page_pool *pool) in page_pool_get_dma_dir() 324 static inline void page_pool_put_netmem(struct page_pool *pool, in page_pool_put_netmem() 353 static inline void page_pool_put_page(struct page_pool *pool, in page_pool_put_page() 378 static inline void page_pool_put_full_page(struct page_pool *pool, in page_pool_put_full_page() 392 static inline void page_pool_recycle_direct(struct page_pool *pool, in page_pool_recycle_direct() 472 page_pool_dma_sync_netmem_for_cpu(const struct page_pool *pool, in page_pool_dma_sync_netmem_for_cpu() [all …]
|
| H A D | types.h | 162 struct page_pool { struct 248 struct page *page_pool_alloc_pages(struct page_pool *pool, gfp_t gfp); argument 249 netmem_ref page_pool_alloc_netmems(struct page_pool *pool, gfp_t gfp); 252 netmem_ref page_pool_alloc_frag_netmem(struct page_pool *pool, 255 struct page_pool *page_pool_create(const struct page_pool_params *params); 262 void page_pool_disable_direct_recycling(struct page_pool *pool); 263 void page_pool_destroy(struct page_pool *pool); 268 static inline void page_pool_destroy(struct page_pool *pool) in page_pool_destroy() 272 static inline void page_pool_use_xdp_mem(struct page_pool *pool, in page_pool_use_xdp_mem() 286 void page_pool_put_unrefed_page(struct page_pool *pool, struct page *page, [all …]
|
| H A D | memory_provider.h | 13 netmem_ref (*alloc_netmems)(struct page_pool *pool, gfp_t gfp); 14 bool (*release_netmem)(struct page_pool *pool, netmem_ref netmem); 15 int (*init)(struct page_pool *pool); 16 void (*destroy)(struct page_pool *pool); 23 void net_mp_niov_set_page_pool(struct page_pool *pool, struct net_iov *niov); 45 static inline void net_mp_netmem_place_in_cache(struct page_pool *pool, in net_mp_netmem_place_in_cache()
|
| /linux-6.15/net/core/ |
| H A D | mp_dmabuf_devmem.h | 14 int mp_dmabuf_devmem_init(struct page_pool *pool); 16 netmem_ref mp_dmabuf_devmem_alloc_netmems(struct page_pool *pool, gfp_t gfp); 18 void mp_dmabuf_devmem_destroy(struct page_pool *pool); 20 bool mp_dmabuf_devmem_release_page(struct page_pool *pool, netmem_ref netmem); 22 static inline int mp_dmabuf_devmem_init(struct page_pool *pool) in mp_dmabuf_devmem_init() 28 mp_dmabuf_devmem_alloc_netmems(struct page_pool *pool, gfp_t gfp) in mp_dmabuf_devmem_alloc_netmems() 33 static inline void mp_dmabuf_devmem_destroy(struct page_pool *pool) in mp_dmabuf_devmem_destroy() 38 mp_dmabuf_devmem_release_page(struct page_pool *pool, netmem_ref netmem) in mp_dmabuf_devmem_release_page()
|
| H A D | page_pool.c | 85 bool page_pool_get_stats(const struct page_pool *pool, in page_pool_get_stats() 189 CACHELINE_ASSERT_GROUP_SIZE(struct page_pool, frag, in page_pool_struct_check() 193 static int page_pool_init(struct page_pool *pool, in page_pool_init() 320 static void page_pool_uninit(struct page_pool *pool) in page_pool_uninit() 338 struct page_pool * 341 struct page_pool *pool; in page_pool_create_percpu() 731 struct page_pool *pool) in page_pool_recycle_in_cache() 911 struct page_pool *pool = NULL; in page_pool_put_netmem_bulk() 918 struct page_pool *netmem_pp; in page_pool_put_netmem_bulk() 1081 static void page_pool_scrub(struct page_pool *pool) in page_pool_scrub() [all …]
|
| H A D | page_pool_priv.h | 12 s32 page_pool_inflight(const struct page_pool *pool, bool strict); 14 int page_pool_list(struct page_pool *pool); 15 void page_pool_detached(struct page_pool *pool); 16 void page_pool_unlist(struct page_pool *pool); 41 void page_pool_set_pp_info(struct page_pool *pool, netmem_ref netmem); 46 static inline void page_pool_set_pp_info(struct page_pool *pool, in page_pool_set_pp_info()
|
| H A D | page_pool_user.c | 36 typedef int (*pp_nl_fill_cb)(struct sk_buff *rsp, const struct page_pool *pool, 42 struct page_pool *pool; in netdev_nl_page_pool_get_do() 88 struct page_pool *pool; in netdev_nl_page_pool_get_dump() 114 page_pool_nl_stats_fill(struct sk_buff *rsp, const struct page_pool *pool, in page_pool_nl_stats_fill() 216 page_pool_nl_fill(struct sk_buff *rsp, const struct page_pool *pool, in page_pool_nl_fill() 311 int page_pool_list(struct page_pool *pool) in page_pool_list() 337 void page_pool_detached(struct page_pool *pool) in page_pool_detached() 345 void page_pool_unlist(struct page_pool *pool) in page_pool_unlist() 359 struct page_pool *pool; in page_pool_check_memory_provider() 381 struct page_pool *pool; in page_pool_unreg_netdev_wipe() [all …]
|
| H A D | devmem.c | 301 int mp_dmabuf_devmem_init(struct page_pool *pool) in mp_dmabuf_devmem_init() 321 netmem_ref mp_dmabuf_devmem_alloc_netmems(struct page_pool *pool, gfp_t gfp) in mp_dmabuf_devmem_alloc_netmems() 340 void mp_dmabuf_devmem_destroy(struct page_pool *pool) in mp_dmabuf_devmem_destroy() 347 bool mp_dmabuf_devmem_release_page(struct page_pool *pool, netmem_ref netmem) in mp_dmabuf_devmem_release_page()
|
| /linux-6.15/include/trace/events/ |
| H A D | page_pool.h | 3 #define TRACE_SYSTEM page_pool 16 TP_PROTO(const struct page_pool *pool, 22 __field(const struct page_pool *, pool) 44 TP_PROTO(const struct page_pool *pool, 50 __field(const struct page_pool *, pool) 70 TP_PROTO(const struct page_pool *pool, 76 __field(const struct page_pool *, pool) 96 TP_PROTO(const struct page_pool *pool, int new_nid), 101 __field(const struct page_pool *, pool)
|
| /linux-6.15/Documentation/networking/ |
| H A D | page_pool.rst | 7 .. kernel-doc:: include/net/page_pool/helpers.h 8 :doc: page_pool allocator 58 .. kernel-doc:: net/core/page_pool.c 61 .. kernel-doc:: include/net/page_pool/types.h 64 .. kernel-doc:: include/net/page_pool/helpers.h 71 .. kernel-doc:: net/core/page_pool.c 119 .. kernel-doc:: include/net/page_pool/types.h 138 /* internal DMA mapping in page_pool */ 145 page_pool = page_pool_create(&pp_params); 185 if (page_pool_get_stats(page_pool, &stats)) { [all …]
|
| H A D | netmem.rst | 25 1. The driver must support page_pool. 29 3. The driver must use the page_pool netmem APIs for payload memory. The netmem 46 must delegate the dma mapping to the page_pool, which knows when 49 by the driver. The driver must delegate the dma syncing to the page_pool, 55 The netmem returned by the page_pool may be unreadable, in which case 63 netmem or page_pool helpers that abstract this complexity are provided 68 CPU will be done by the page_pool, for others (particularly dmabuf memory 71 the page_pool which will do it correctly. 73 7. Avoid implementing driver-specific recycling on top of the page_pool. Drivers 75 not be backed by a struct page. However, you may hold onto a page_pool
|
| /linux-6.15/drivers/net/ethernet/apm/xgene/ |
| H A D | xgene_enet_main.c | 690 page_pool = rx_ring->page_pool; in xgene_enet_rx_frame() 1081 page_pool = ring->page_pool; in xgene_enet_delete_desc_rings() 1082 if (page_pool) { in xgene_enet_delete_desc_rings() 1179 page_pool = ring->page_pool; in xgene_enet_free_desc_rings() 1180 if (page_pool) { in xgene_enet_free_desc_rings() 1373 if (!page_pool) { in xgene_enet_create_desc_rings() 1395 page_pool->dst_ring_num = xgene_enet_dst_ring_num(page_pool); in xgene_enet_create_desc_rings() 1396 rx_ring->page_pool = page_pool; in xgene_enet_create_desc_rings() 1835 page_pool = pdata->rx_ring[i]->page_pool; in xgene_enet_init_hw() 1869 page_pool = pdata->rx_ring[0]->page_pool; in xgene_enet_init_hw() [all …]
|
| /linux-6.15/drivers/net/vmxnet3/ |
| H A D | vmxnet3_xdp.c | 282 page_pool_recycle_direct(rq->page_pool, page); in vmxnet3_run_xdp() 290 page_pool_recycle_direct(rq->page_pool, page); in vmxnet3_run_xdp() 307 page_pool_recycle_direct(rq->page_pool, page); in vmxnet3_run_xdp() 320 page_pool_recycle_direct(rq->page_pool, page); in vmxnet3_build_skb() 345 page = page_pool_alloc_pages(rq->page_pool, GFP_ATOMIC); in vmxnet3_process_xdp_small() 352 xdp_prepare_buff(&xdp, page_address(page), rq->page_pool->p.offset, in vmxnet3_process_xdp_small() 395 rq->page_pool->p.offset, rbi->len, in vmxnet3_process_xdp() 396 page_pool_get_dma_dir(rq->page_pool)); in vmxnet3_process_xdp() 399 xdp_prepare_buff(&xdp, page_address(page), rq->page_pool->p.offset, in vmxnet3_process_xdp() 417 new_data = vmxnet3_pp_get_buff(rq->page_pool, &new_dma_addr, in vmxnet3_process_xdp()
|
| /linux-6.15/drivers/net/ethernet/microchip/lan966x/ |
| H A D | lan966x_fdma.c | 16 page = page_pool_dev_alloc_pages(rx->page_pool); in lan966x_fdma_rx_dataptr_cb() 58 page_pool_put_full_page(rx->page_pool, in lan966x_fdma_rx_free_pages() 93 rx->page_pool = page_pool_create(&pp_params); in lan966x_fdma_rx_alloc_page_pool() 104 rx->page_pool); in lan966x_fdma_rx_alloc_page_pool() 107 return PTR_ERR_OR_ZERO(rx->page_pool); in lan966x_fdma_rx_alloc_page_pool() 117 return PTR_ERR(rx->page_pool); in lan966x_fdma_rx_alloc() 376 page_pool_recycle_direct(rx->page_pool, in lan966x_fdma_tx_clear_buf() 812 struct page_pool *page_pool; in lan966x_fdma_reload() local 818 page_pool = lan966x->rx.page_pool; in lan966x_fdma_reload() 835 page_pool_destroy(page_pool); in lan966x_fdma_reload() [all …]
|
| /linux-6.15/include/net/ |
| H A D | xdp_priv.h | 13 struct page_pool *page_pool; member
|
| H A D | netmem.h | 26 struct page_pool *pp; 187 static inline struct page_pool *__netmem_get_pp(netmem_ref netmem) in __netmem_get_pp() 192 static inline struct page_pool *netmem_get_pp(netmem_ref netmem) in netmem_get_pp()
|
| /linux-6.15/drivers/net/ethernet/google/gve/ |
| H A D | gve_buffer_mgmt_dqo.c | 224 netmem = page_pool_alloc_netmem(rx->dqo.page_pool, in gve_alloc_from_page_pool() 235 buf_state->page_info.pad = rx->dqo.page_pool->p.offset; in gve_alloc_from_page_pool() 240 struct page_pool *gve_rx_create_page_pool(struct gve_priv *priv, in gve_rx_create_page_pool() 263 if (rx->dqo.page_pool) { in gve_free_buffer() 275 if (rx->dqo.page_pool) { in gve_reuse_buffer() 288 if (rx->dqo.page_pool) { in gve_alloc_buffer()
|
| H A D | gve_rx_dqo.c | 98 if (rx->dqo.page_pool) in gve_rx_reset_ring_dqo() 117 if (rx->dqo.page_pool) in gve_rx_stop_ring_dqo() 147 if (rx->dqo.page_pool) in gve_rx_free_ring_dqo() 177 if (rx->dqo.page_pool) { in gve_rx_free_ring_dqo() 179 rx->dqo.page_pool = NULL; in gve_rx_free_ring_dqo() 214 struct page_pool *pool; in gve_rx_alloc_ring_dqo() 493 if (rx->dqo.page_pool) { in gve_skb_add_rx_frag() 525 if (rx->dqo.page_pool) in gve_rx_append_frags() 614 if (rx->dqo.page_pool) { in gve_rx_dqo() 634 if (rx->dqo.page_pool) in gve_rx_dqo() [all …]
|
| /linux-6.15/block/ |
| H A D | bounce.c | 32 static mempool_t page_pool; variable 59 ret = mempool_init_page_pool(&page_pool, POOL_SIZE, 0); in init_emergency_pool() 114 mempool_free(bvec->bv_page, &page_pool); in bounce_end_io() 246 bounce_page = mempool_alloc(&page_pool, GFP_NOIO); in __blk_queue_bounce()
|
| /linux-6.15/drivers/net/ethernet/microchip/sparx5/lan969x/ |
| H A D | lan969x_fdma.c | 31 page = page_pool_dev_alloc_pages(rx->page_pool); in lan969x_fdma_rx_dataptr_cb() 95 page_pool_put_full_page(rx->page_pool, in lan969x_fdma_free_pages() 145 page_pool_recycle_direct(rx->page_pool, page); in lan969x_fdma_rx_get_frame() 168 rx->page_pool = page_pool_create(&pp_params); in lan969x_fdma_rx_alloc() 169 if (IS_ERR(rx->page_pool)) in lan969x_fdma_rx_alloc() 170 return PTR_ERR(rx->page_pool); in lan969x_fdma_rx_alloc() 403 page_pool_destroy(rx->page_pool); in lan969x_fdma_deinit()
|
| /linux-6.15/drivers/net/netdevsim/ |
| H A D | netdev.c | 388 struct page_pool *pool; in nsim_create_page_pool() 413 err = nsim_create_page_pool(&rq->page_pool, &rq->napi); in nsim_init_napi() 422 page_pool_destroy(ns->rq[i]->page_pool); in nsim_init_napi() 423 ns->rq[i]->page_pool = NULL; in nsim_init_napi() 491 page_pool_destroy(ns->rq[i]->page_pool); in nsim_del_napi() 492 ns->rq[i]->page_pool = NULL; in nsim_del_napi() 660 struct page_pool *pp; 707 page_pool_destroy(qmem->rq->page_pool); in nsim_queue_mem_free() 721 ns->rq[idx]->page_pool = qmem->pp; in nsim_queue_start() 755 qmem->pp = ns->rq[idx]->page_pool; in nsim_queue_stop() [all …]
|
| /linux-6.15/drivers/net/ethernet/mellanox/mlxsw/ |
| H A D | pci.c | 89 struct page_pool *page_pool; member 399 struct page_pool *page_pool; in mlxsw_pci_rdq_build_skb() local 410 page_pool = cq->u.cq.page_pool; in mlxsw_pci_rdq_build_skb() 411 page_pool_dma_sync_for_cpu(page_pool, pages[page_index], in mlxsw_pci_rdq_build_skb() 454 page = page_pool_dev_alloc_pages(cq->u.cq.page_pool); in mlxsw_pci_rdq_page_alloc() 997 struct page_pool *page_pool; in mlxsw_pci_cq_page_pool_init() local 1010 page_pool = page_pool_create(&pp_params); in mlxsw_pci_cq_page_pool_init() 1011 if (IS_ERR(page_pool)) in mlxsw_pci_cq_page_pool_init() 1012 return PTR_ERR(page_pool); in mlxsw_pci_cq_page_pool_init() 1014 q->u.cq.page_pool = page_pool; in mlxsw_pci_cq_page_pool_init() [all …]
|
| /linux-6.15/drivers/net/ethernet/meta/fbnic/ |
| H A D | fbnic_txrx.h | 134 struct page_pool *page_pool; member
|
| /linux-6.15/drivers/net/ethernet/marvell/octeontx2/nic/ |
| H A D | otx2_txrx.h | 133 struct page_pool *page_pool; member
|
| /linux-6.15/io_uring/ |
| H A D | zcrx.c | 29 static inline struct io_zcrx_ifq *io_pp_to_ifq(struct page_pool *pp) in io_pp_to_ifq() 93 static void io_zcrx_sync_for_device(const struct page_pool *pool, in io_zcrx_sync_for_device() 527 static void io_zcrx_ring_refill(struct page_pool *pp, in io_zcrx_ring_refill() 581 static void io_zcrx_refill_slow(struct page_pool *pp, struct io_zcrx_ifq *ifq) in io_zcrx_refill_slow() 597 static netmem_ref io_pp_zc_alloc_netmems(struct page_pool *pp, gfp_t gfp) in io_pp_zc_alloc_netmems() 616 static bool io_pp_zc_release_netmem(struct page_pool *pp, netmem_ref netmem) in io_pp_zc_release_netmem() 629 static int io_pp_zc_init(struct page_pool *pp) in io_pp_zc_init() 653 static void io_pp_zc_destroy(struct page_pool *pp) in io_pp_zc_destroy()
|