Home
last modified time | relevance | path

Searched refs:page_pool (Results 1 – 25 of 66) sorted by relevance

123

/linux/include/net/page_pool/
H A Dtypes.h166 struct page_pool { struct
254 struct page *page_pool_alloc_pages(struct page_pool *pool, gfp_t gfp); argument
255 netmem_ref page_pool_alloc_netmems(struct page_pool *pool, gfp_t gfp);
256 struct page *page_pool_alloc_frag(struct page_pool *pool, unsigned int *offset,
258 netmem_ref page_pool_alloc_frag_netmem(struct page_pool *pool,
261 struct page_pool *page_pool_create(const struct page_pool_params *params);
262 struct page_pool *page_pool_create_percpu(const struct page_pool_params *params,
268 void page_pool_enable_direct_recycling(struct page_pool *pool,
270 void page_pool_disable_direct_recycling(struct page_pool *pool);
271 void page_pool_destroy(struct page_pool *pool);
[all …]
H A Dmemory_provider.h13 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/net/core/
H A Dmp_dmabuf_devmem.h14 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 Dpage_pool.c3 * page_pool.c
16 #include <net/page_pool/helpers.h>
17 #include <net/page_pool/memory_provider.h>
28 #include <trace/events/page_pool.h>
79 * Retrieve statistics about the page_pool. This API is only available
85 bool page_pool_get_stats(const struct page_pool *pool, in page_pool_get_stats()
161 static bool page_pool_producer_lock(struct page_pool *pool) in page_pool_producer_lock()
174 static void page_pool_producer_unlock(struct page_pool *pool, in page_pool_producer_unlock()
186 CACHELINE_ASSERT_GROUP_MEMBER(struct page_pool, frag, frag_users); in page_pool_struct_check()
187 CACHELINE_ASSERT_GROUP_MEMBER(struct page_pool, fra in page_pool_struct_check()
[all...]
H A Dpage_pool_priv.h12 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 Dpage_pool_user.c36 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()
262 static void netdev_nl_page_pool_event(const struct page_pool *pool, u32 cmd) in netdev_nl_page_pool_event()
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()
[all …]
H A Ddevmem.c422 int mp_dmabuf_devmem_init(struct page_pool *pool) in mp_dmabuf_devmem_init()
442 netmem_ref mp_dmabuf_devmem_alloc_netmems(struct page_pool *pool, gfp_t gfp) in mp_dmabuf_devmem_alloc_netmems()
461 void mp_dmabuf_devmem_destroy(struct page_pool *pool) in mp_dmabuf_devmem_destroy()
468 bool mp_dmabuf_devmem_release_page(struct page_pool *pool, netmem_ref netmem) in mp_dmabuf_devmem_release_page()
H A Dnetmem_priv.h28 static inline void netmem_set_pp(netmem_ref netmem, struct page_pool *pool) in netmem_set_dma_addr()
/linux/include/trace/events/
H A Dpage_pool.h3 #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/Documentation/networking/
H A Dpage_pool.rst7 .. 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
112 It takes a pointer to a ``struct page_pool`` and a pointer to a struct
119 .. kernel-doc:: include/net/page_pool/types.h
138 /* internal DMA mapping in page_pool */
145 page_pool = page_pool_create(&pp_params);
[all …]
/linux/drivers/net/vmxnet3/
H A Dvmxnet3_xdp.c282 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/drivers/net/ethernet/microchip/lan966x/
H A Dlan966x_fdma.c16 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()
72 page_pool_recycle_direct(rx->page_pool, page); in lan966x_fdma_rx_free_page()
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()
469 page_pool_recycle_direct(rx->page_pool, page); in lan966x_fdma_rx_get_frame()
812 struct page_pool *page_pool; in lan966x_fdma_reload() local
[all …]
/linux/drivers/net/ethernet/google/gve/
H A Dgve_rx_dqo.c100 if (rx->dqo.page_pool) in gve_rx_reset_ring_dqo()
119 if (rx->dqo.page_pool) in gve_rx_stop_ring_dqo()
120 page_pool_disable_direct_recycling(rx->dqo.page_pool); in gve_rx_stop_ring_dqo()
149 if (rx->dqo.page_pool) in gve_rx_free_ring_dqo()
183 if (rx->dqo.page_pool) { in gve_rx_free_ring_dqo()
184 page_pool_destroy(rx->dqo.page_pool); in gve_rx_free_ring_dqo()
185 rx->dqo.page_pool = NULL; in gve_rx_free_ring_dqo()
220 struct page_pool *pool; in gve_rx_alloc_ring_dqo()
281 rx->dqo.page_pool = pool; in gve_rx_alloc_ring_dqo()
551 if (rx->dqo.page_pool) { in gve_skb_add_rx_frag()
[all …]
/linux/include/net/
H A Dxdp_priv.h13 struct page_pool *page_pool; member
H A Dnetmem.h15 /* These fields in struct page are used by the page_pool and net stack:
19 * struct page_pool *pp;
25 * We mirror the page_pool fields here so the page_pool can access these
35 struct page_pool *pp;
107 struct page_pool *pp;
127 * the page_pool can access these fields without worrying whether the
302 * __netmem_get_pp - unsafely get pointer to the &page_pool backing @netmem
310 * Return: pointer to the &page_pool (garbage if @netmem is not page-backed).
312 static inline struct page_pool *__netmem_get_p
[all...]
/linux/drivers/net/netdevsim/
H A Dnetdev.c462 static int nsim_create_page_pool(struct page_pool **p, struct napi_struct *napi) in nsim_create_page_pool()
473 struct page_pool *pool; in nsim_create_page_pool()
498 err = nsim_create_page_pool(&rq->page_pool, &rq->napi); in nsim_init_napi()
507 page_pool_destroy(ns->rq[i]->page_pool); in nsim_init_napi()
508 ns->rq[i]->page_pool = NULL; in nsim_init_napi()
583 page_pool_destroy(ns->rq[i]->page_pool); in nsim_del_napi()
584 ns->rq[i]->page_pool = NULL; in nsim_del_napi()
757 struct page_pool *pp;
780 err = nsim_create_page_pool(&qmem->rq->page_pool, &qmem->rq->napi); in nsim_queue_mem_alloc()
804 page_pool_destroy(qmem->rq->page_pool); in nsim_queue_mem_free()
[all …]
/linux/drivers/net/ethernet/mellanox/mlxsw/
H A Dpci.c89 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()
436 page_pool_dma_sync_for_cpu(page_pool, page, 0, frag_size); in mlxsw_pci_rdq_build_skb()
454 page = page_pool_dev_alloc_pages(cq->u.cq.page_pool); in mlxsw_pci_rdq_page_alloc()
469 page_pool_put_page(cq->u.cq.page_pool, elem_info->pages[index], -1, in mlxsw_pci_rdq_page_free()
521 page_pool_recycle_direct(cq->u.cq.page_pool, old_pages[i]); in mlxsw_pci_rdq_pages_alloc()
534 page_pool_recycle_direct(cq->u.cq.page_pool, pages[i]); in mlxsw_pci_rdq_pages_recycle()
997 struct page_pool *page_pool; in mlxsw_pci_cq_page_pool_init() local
[all …]
/linux/drivers/net/ethernet/socionext/
H A Dnetsec.c286 struct page_pool *page_pool; member
742 page = page_pool_dev_alloc_pages(dring->page_pool); in netsec_alloc_rx_data()
863 page_pool_get_dma_dir(rx_ring->page_pool); in netsec_xdp_queue_one()
922 page_pool_put_page(dring->page_pool, page, sync, true); in netsec_run_xdp()
932 page_pool_put_page(dring->page_pool, page, sync, true); in netsec_run_xdp()
944 page_pool_put_page(dring->page_pool, page, sync, true); in netsec_run_xdp()
966 dma_dir = page_pool_get_dma_dir(dring->page_pool); in netsec_process_rx()
1041 page_pool_put_page(dring->page_pool, page, pkt_len, in netsec_process_rx()
1218 page_pool_put_full_page(dring->page_pool, page, false); in netsec_uninit_pkt_dring()
1230 page_pool_destroy(dring->page_pool); in netsec_uninit_pkt_dring()
[all …]
/linux/drivers/net/ethernet/marvell/octeontx2/nic/
H A Dotx2_txrx.h133 struct page_pool *page_pool; member
/linux/tools/testing/selftests/net/bench/
H A DMakefile3 TEST_GEN_MODS_DIR := page_pool
/linux/drivers/net/ethernet/ti/
H A Dam65-cpsw-nuss.h103 struct page_pool *page_pool; member
/linux/tools/testing/selftests/net/bench/page_pool/
H A Dbench_page_pool_simple.c106 static void pp_fill_ptr_ring(struct page_pool *pp, int elems) in pp_fill_ptr_ring()
133 struct page_pool *pp; in time_bench_page_pool()
/linux/drivers/net/ethernet/tehuti/
H A Dtn40.h146 struct page_pool *page_pool; member
/linux/io_uring/
H A Dzcrx.c35 static inline struct io_zcrx_ifq *io_pp_to_ifq(struct page_pool *pp) in io_pp_to_ifq()
295 static void io_zcrx_sync_for_device(struct page_pool *pool, in io_zcrx_sync_for_device()
912 static void io_zcrx_ring_refill(struct page_pool *pp, in io_zcrx_ring_refill()
951 static void io_zcrx_refill_slow(struct page_pool *pp, struct io_zcrx_ifq *ifq) in io_zcrx_refill_slow()
967 static netmem_ref io_pp_zc_alloc_netmems(struct page_pool *pp, gfp_t gfp) in io_pp_zc_alloc_netmems()
986 static bool io_pp_zc_release_netmem(struct page_pool *pp, netmem_ref netmem) in io_pp_zc_release_netmem()
999 static int io_pp_zc_init(struct page_pool *pp) in io_pp_zc_init()
1023 static void io_pp_zc_destroy(struct page_pool *pp) in io_pp_zc_destroy()
1297 struct page_pool *pp; in io_zcrx_recv_frag()
/linux/drivers/net/ethernet/hisilicon/hibmcge/
H A Dhbg_common.h88 struct page_pool *page_pool; /* only for rx */ member

123