Home
last modified time | relevance | path

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

123

/Linux-v6.6/include/net/page_pool/
Dtypes.h123 struct page_pool { struct
185 struct page *page_pool_alloc_pages(struct page_pool *pool, gfp_t gfp); argument
186 struct page *page_pool_alloc_frag(struct page_pool *pool, unsigned int *offset,
188 struct page_pool *page_pool_create(const struct page_pool_params *params);
193 void page_pool_unlink_napi(struct page_pool *pool);
194 void page_pool_destroy(struct page_pool *pool);
195 void page_pool_use_xdp_mem(struct page_pool *pool, void (*disconnect)(void *),
197 void page_pool_put_page_bulk(struct page_pool *pool, void **data,
200 static inline void page_pool_unlink_napi(struct page_pool *pool) in page_pool_unlink_napi()
204 static inline void page_pool_destroy(struct page_pool *pool) in page_pool_destroy()
[all …]
Dhelpers.h44 bool page_pool_get_stats(struct page_pool *pool,
69 static inline struct page *page_pool_dev_alloc_pages(struct page_pool *pool) in page_pool_dev_alloc_pages()
76 static inline struct page *page_pool_dev_alloc_frag(struct page_pool *pool, in page_pool_dev_alloc_frag()
93 inline enum dma_data_direction page_pool_get_dma_dir(struct page_pool *pool) in page_pool_get_dma_dir()
134 static inline bool page_pool_is_last_frag(struct page_pool *pool, in page_pool_is_last_frag()
155 static inline void page_pool_put_page(struct page_pool *pool, in page_pool_put_page()
180 static inline void page_pool_put_full_page(struct page_pool *pool, in page_pool_put_full_page()
194 static inline void page_pool_recycle_direct(struct page_pool *pool, in page_pool_recycle_direct()
227 static inline bool page_pool_put(struct page_pool *pool) in page_pool_put()
232 static inline void page_pool_nid_changed(struct page_pool *pool, int new_nid) in page_pool_nid_changed()
/Linux-v6.6/net/core/
Dpage_pool.c72 bool page_pool_get_stats(struct page_pool *pool, in page_pool_get_stats()
148 static bool page_pool_producer_lock(struct page_pool *pool) in page_pool_producer_lock()
161 static void page_pool_producer_unlock(struct page_pool *pool, in page_pool_producer_unlock()
171 static int page_pool_init(struct page_pool *pool, in page_pool_init()
242 struct page_pool *page_pool_create(const struct page_pool_params *params) in page_pool_create()
244 struct page_pool *pool; in page_pool_create()
262 static void page_pool_return_page(struct page_pool *pool, struct page *page);
265 static struct page *page_pool_refill_alloc_cache(struct page_pool *pool) in page_pool_refill_alloc_cache()
318 static struct page *__page_pool_get_cached(struct page_pool *pool) in __page_pool_get_cached()
334 static void page_pool_dma_sync_for_device(struct page_pool *pool, in page_pool_dma_sync_for_device()
[all …]
/Linux-v6.6/include/trace/events/
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)
69 TP_PROTO(const struct page_pool *pool,
75 __field(const struct page_pool *, pool)
94 TP_PROTO(const struct page_pool *pool, int new_nid),
99 __field(const struct page_pool *, pool)
/Linux-v6.6/Documentation/networking/
Dpage_pool.rst7 .. kernel-doc:: include/net/page_pool/helpers.h
8 :doc: page_pool allocator
53 .. kernel-doc:: net/core/page_pool.c
56 .. kernel-doc:: include/net/page_pool/types.h
59 .. kernel-doc:: include/net/page_pool/helpers.h
64 .. kernel-doc:: net/core/page_pool.c
105 It takes a pointer to a ``struct page_pool`` and a pointer to a struct
109 statistics about the page_pool.
111 .. kernel-doc:: include/net/page_pool/types.h
130 /* internal DMA mapping in page_pool */
[all …]
/Linux-v6.6/drivers/net/ethernet/apm/xgene/
Dxgene_enet_main.c672 struct xgene_enet_desc_ring *buf_pool, *page_pool; in xgene_enet_rx_frame() local
690 page_pool = rx_ring->page_pool; in xgene_enet_rx_frame()
719 xgene_enet_free_pagepool(page_pool, raw_desc, exp_desc); in xgene_enet_rx_frame()
729 slots = page_pool->slots - 1; in xgene_enet_rx_frame()
730 head = page_pool->head; in xgene_enet_rx_frame()
741 page = page_pool->frag_page[head]; in xgene_enet_rx_frame()
747 page_pool->frag_page[head] = NULL; in xgene_enet_rx_frame()
751 page_pool->head = head; in xgene_enet_rx_frame()
764 ret = xgene_enet_refill_pagepool(page_pool, NUM_NXTBUFPOOL); in xgene_enet_rx_frame()
1062 struct xgene_enet_desc_ring *buf_pool, *page_pool; in xgene_enet_delete_desc_rings() local
[all …]
Dxgene_enet_cle.c709 if (pdata->rx_ring[idx]->page_pool) { in xgene_cle_set_rss_idt()
710 pool_id = pdata->rx_ring[idx]->page_pool->id; in xgene_cle_set_rss_idt()
786 if (pdata->rx_ring[0]->page_pool) { in xgene_enet_cle_init()
787 pool_id = pdata->rx_ring[0]->page_pool->id; in xgene_enet_cle_init()
/Linux-v6.6/drivers/net/vmxnet3/
Dvmxnet3_xdp.c272 page_pool_recycle_direct(rq->page_pool, page); in vmxnet3_run_xdp()
280 page_pool_recycle_direct(rq->page_pool, page); in vmxnet3_run_xdp()
297 page_pool_recycle_direct(rq->page_pool, page); in vmxnet3_run_xdp()
310 page_pool_recycle_direct(rq->page_pool, page); in vmxnet3_build_skb()
335 page = page_pool_alloc_pages(rq->page_pool, GFP_ATOMIC); in vmxnet3_process_xdp_small()
342 xdp_prepare_buff(&xdp, page_address(page), rq->page_pool->p.offset, in vmxnet3_process_xdp_small()
385 rq->page_pool->p.offset, rcd->len, in vmxnet3_process_xdp()
386 page_pool_get_dma_dir(rq->page_pool)); in vmxnet3_process_xdp()
389 xdp_prepare_buff(&xdp, page_address(page), rq->page_pool->p.offset, in vmxnet3_process_xdp()
407 new_data = vmxnet3_pp_get_buff(rq->page_pool, &new_dma_addr, in vmxnet3_process_xdp()
Dvmxnet3_xdp.h39 void *vmxnet3_pp_get_buff(struct page_pool *pp, dma_addr_t *dma_addr,
/Linux-v6.6/drivers/net/ethernet/microchip/lan966x/
Dlan966x_fdma.c19 page = page_pool_dev_alloc_pages(rx->page_pool); in lan966x_fdma_rx_alloc_page()
34 page_pool_put_full_page(rx->page_pool, in lan966x_fdma_rx_free_pages()
47 page_pool_recycle_direct(rx->page_pool, page); in lan966x_fdma_rx_free_page()
87 rx->page_pool = page_pool_create(&pp_params); in lan966x_fdma_rx_alloc_page_pool()
98 rx->page_pool); in lan966x_fdma_rx_alloc_page_pool()
101 return PTR_ERR_OR_ZERO(rx->page_pool); in lan966x_fdma_rx_alloc_page_pool()
114 return PTR_ERR(rx->page_pool); in lan966x_fdma_rx_alloc()
437 page_pool_recycle_direct(rx->page_pool, in lan966x_fdma_tx_clear_buf()
540 page_pool_recycle_direct(rx->page_pool, page); in lan966x_fdma_rx_get_frame()
910 struct page_pool *page_pool; in lan966x_fdma_reload() local
[all …]
/Linux-v6.6/include/net/
Dxdp_priv.h13 struct page_pool *page_pool; member
/Linux-v6.6/block/
Dbounce.c32 static mempool_t page_pool; variable
61 ret = mempool_init_page_pool(&page_pool, POOL_SIZE, 0); in init_emergency_pool()
116 mempool_free(bvec->bv_page, &page_pool); in bounce_end_io()
247 bounce_page = mempool_alloc(&page_pool, GFP_NOIO); in __blk_queue_bounce()
/Linux-v6.6/drivers/net/ethernet/marvell/octeontx2/nic/
Dotx2_txrx.h123 struct page_pool *page_pool; member
Dotx2_common.c533 page = page_pool_alloc_frag(pool->page_pool, &offset, sz, GFP_ATOMIC); in otx2_alloc_pool_buf()
546 if (pool->page_pool) in __otx2_alloc_rbuf()
1215 if (pool->page_pool) { in otx2_free_bufs()
1216 page_pool_put_full_page(pool->page_pool, page, true); in otx2_free_bufs()
1270 page_pool_destroy(pool->page_pool); in otx2_aura_pool_free()
1271 pool->page_pool = NULL; in otx2_aura_pool_free()
1402 pool->page_pool = NULL; in otx2_pool_init()
1412 pool->page_pool = page_pool_create(&pp_params); in otx2_pool_init()
1413 if (IS_ERR(pool->page_pool)) { in otx2_pool_init()
1415 return PTR_ERR(pool->page_pool); in otx2_pool_init()
/Linux-v6.6/drivers/net/
Dveth.c69 struct page_pool *page_pool; member
187 if (!priv->rq[i].page_pool) in veth_get_page_pool_stats()
189 page_pool_get_stats(priv->rq[i].page_pool, &pp_stats); in veth_get_page_pool_stats()
757 page = page_pool_dev_alloc_pages(rq->page_pool); in veth_convert_skb_to_xdp_buff()
763 page_pool_put_full_page(rq->page_pool, page, true); in veth_convert_skb_to_xdp_buff()
786 page = page_pool_dev_alloc_pages(rq->page_pool); in veth_convert_skb_to_xdp_buff()
1043 rq->page_pool = page_pool_create(&pp_params); in veth_create_page_pool()
1044 if (IS_ERR(rq->page_pool)) { in veth_create_page_pool()
1045 int err = PTR_ERR(rq->page_pool); in veth_create_page_pool()
1047 rq->page_pool = NULL; in veth_create_page_pool()
[all …]
Dxen-netfront.c156 struct page_pool *page_pool; member
281 page = page_pool_alloc_pages(queue->page_pool, in xennet_alloc_one_rx_buffer()
1846 page_pool_destroy(queue->page_pool); in xennet_disconnect_backend()
2172 queue->page_pool = page_pool_create(&pp_params); in xennet_create_page_pool()
2173 if (IS_ERR(queue->page_pool)) { in xennet_create_page_pool()
2174 err = PTR_ERR(queue->page_pool); in xennet_create_page_pool()
2175 queue->page_pool = NULL; in xennet_create_page_pool()
2187 MEM_TYPE_PAGE_POOL, queue->page_pool); in xennet_create_page_pool()
2197 page_pool_destroy(queue->page_pool); in xennet_create_page_pool()
2198 queue->page_pool = NULL; in xennet_create_page_pool()
/Linux-v6.6/drivers/net/ethernet/socionext/
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()
1215 page_pool_put_full_page(dring->page_pool, page, false); in netsec_uninit_pkt_dring()
1227 page_pool_destroy(dring->page_pool); in netsec_uninit_pkt_dring()
[all …]
/Linux-v6.6/drivers/net/ethernet/ti/
Dcpsw_priv.c1106 struct page_pool *pool; in cpsw_fill_rx_channels()
1113 pool = cpsw->page_pool[ch]; in cpsw_fill_rx_channels()
1147 static struct page_pool *cpsw_create_page_pool(struct cpsw_common *cpsw, in cpsw_create_page_pool()
1151 struct page_pool *pool; in cpsw_create_page_pool()
1169 struct page_pool *pool; in cpsw_create_rx_pool()
1177 cpsw->page_pool[ch] = pool; in cpsw_create_rx_pool()
1186 struct page_pool *pool; in cpsw_ndev_create_xdp_rxq()
1189 pool = cpsw->page_pool[ch]; in cpsw_ndev_create_xdp_rxq()
1227 page_pool_destroy(cpsw->page_pool[ch]); in cpsw_destroy_xdp_rxqs()
1228 cpsw->page_pool[ch] = NULL; in cpsw_destroy_xdp_rxqs()
[all …]
/Linux-v6.6/drivers/net/ethernet/engleder/
Dtsnep.h129 struct page_pool *page_pool; member
Dtsnep_main.c892 page_pool_put_full_page(rx->page_pool, entry->page, in tsnep_rx_ring_cleanup()
900 if (rx->page_pool) in tsnep_rx_ring_cleanup()
901 page_pool_destroy(rx->page_pool); in tsnep_rx_ring_cleanup()
950 rx->page_pool = page_pool_create(&pp_params); in tsnep_rx_ring_create()
951 if (IS_ERR(rx->page_pool)) { in tsnep_rx_ring_create()
952 retval = PTR_ERR(rx->page_pool); in tsnep_rx_ring_create()
953 rx->page_pool = NULL; in tsnep_rx_ring_create()
1018 page_pool_put_full_page(rx->page_pool, *page, false); in tsnep_rx_free_page_buffer()
1032 rx->page_buffer[i] = page_pool_dev_alloc_pages(rx->page_pool); in tsnep_rx_alloc_page_buffer()
1057 page = page_pool_dev_alloc_pages(rx->page_pool); in tsnep_rx_alloc_buffer()
[all …]
/Linux-v6.6/drivers/net/ethernet/broadcom/bnxt/
Dbnxt_xdp.c164 page_pool_recycle_direct(rxr->page_pool, tx_buf->page); in bnxt_tx_int_xdp()
222 page_pool_recycle_direct(rxr->page_pool, page); in bnxt_xdp_buff_frags_free()
323 page_pool_recycle_direct(rxr->page_pool, page); in bnxt_rx_xdp()
477 struct page_pool *pool, struct xdp_buff *xdp, in bnxt_xdp_build_skb()
Dbnxt_xdp.h35 u8 num_frags, struct page_pool *pool,
/Linux-v6.6/drivers/net/ethernet/wangxun/libwx/
Dwx_lib.c231 page_pool_put_full_page(rx_ring->page_pool, rx_buffer->page, false); in wx_dma_sync_frag()
291 page_pool_put_full_page(rx_ring->page_pool, rx_buffer->page, false); in wx_put_rx_buffer()
378 page = page_pool_dev_alloc_pages(rx_ring->page_pool); in wx_alloc_mapped_page()
2228 page_pool_put_full_page(rx_ring->page_pool, rx_buffer->page, false); in wx_clean_rx_ring()
2243 page_pool_put_full_page(rx_ring->page_pool, rx_buffer->page, false); in wx_clean_rx_ring()
2294 if (rx_ring->page_pool) { in wx_free_rx_resources()
2295 page_pool_destroy(rx_ring->page_pool); in wx_free_rx_resources()
2296 rx_ring->page_pool = NULL; in wx_free_rx_resources()
2447 rx_ring->page_pool = page_pool_create(&pp_params); in wx_alloc_page_pool()
2448 if (IS_ERR(rx_ring->page_pool)) { in wx_alloc_page_pool()
[all …]
/Linux-v6.6/drivers/net/ethernet/marvell/mvpp2/
Dmvpp2_main.c104 static struct page_pool *
361 struct page_pool *page_pool) in mvpp2_frag_alloc() argument
363 if (page_pool) in mvpp2_frag_alloc()
364 return page_pool_dev_alloc_pages(page_pool); in mvpp2_frag_alloc()
373 struct page_pool *page_pool, void *data) in mvpp2_frag_free() argument
375 if (page_pool) in mvpp2_frag_free()
376 page_pool_put_full_page(page_pool, virt_to_head_page(data), false); in mvpp2_frag_free()
495 struct page_pool *pp = NULL; in mvpp2_bm_bufs_free()
505 pp = priv->page_pool[bm_pool->id]; in mvpp2_bm_bufs_free()
570 page_pool_destroy(priv->page_pool[bm_pool->id]); in mvpp2_bm_pool_destroy()
[all …]
/Linux-v6.6/drivers/net/ethernet/stmicro/stmmac/
Dstmmac.h108 struct page_pool *page_pool; member

123