Home
last modified time | relevance | path

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

12

/Linux-v6.1/include/net/
Dpage_pool.h129 bool page_pool_get_stats(struct page_pool *pool,
150 struct page_pool { struct
212 struct page *page_pool_alloc_pages(struct page_pool *pool, gfp_t gfp); argument
214 static inline struct page *page_pool_dev_alloc_pages(struct page_pool *pool) in page_pool_dev_alloc_pages()
221 struct page *page_pool_alloc_frag(struct page_pool *pool, unsigned int *offset,
224 static inline struct page *page_pool_dev_alloc_frag(struct page_pool *pool, in page_pool_dev_alloc_frag()
237 inline enum dma_data_direction page_pool_get_dma_dir(struct page_pool *pool) in page_pool_get_dma_dir()
244 struct page_pool *page_pool_create(const struct page_pool_params *params);
249 void page_pool_destroy(struct page_pool *pool);
250 void page_pool_use_xdp_mem(struct page_pool *pool, void (*disconnect)(void *),
[all …]
Dxdp_priv.h13 struct page_pool *page_pool; member
/Linux-v6.1/net/core/
Dpage_pool.c60 bool page_pool_get_stats(struct page_pool *pool, in page_pool_get_stats()
136 static int page_pool_init(struct page_pool *pool, in page_pool_init()
203 struct page_pool *page_pool_create(const struct page_pool_params *params) in page_pool_create()
205 struct page_pool *pool; in page_pool_create()
223 static void page_pool_return_page(struct page_pool *pool, struct page *page);
226 static struct page *page_pool_refill_alloc_cache(struct page_pool *pool) in page_pool_refill_alloc_cache()
279 static struct page *__page_pool_get_cached(struct page_pool *pool) in __page_pool_get_cached()
295 static void page_pool_dma_sync_for_device(struct page_pool *pool, in page_pool_dma_sync_for_device()
307 static bool page_pool_dma_map(struct page_pool *pool, struct page *page) in page_pool_dma_map()
330 static void page_pool_set_pp_info(struct page_pool *pool, in page_pool_set_pp_info()
[all …]
DMakefile20 obj-$(CONFIG_PAGE_POOL) += page_pool.o
Dxdp.c129 page_pool_destroy(xa->page_pool); in xdp_unreg_mem_model()
463 page_pool_put_page_bulk(xa->page_pool, bq->q, bq->count); in xdp_flush_frame_bulk()
542 page_pool_release_page(xa->page_pool, page); in __xdp_release_frame()
/Linux-v6.1/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.1/Documentation/networking/
Dpage_pool.rst7 The page_pool allocator is optimized for the XDP mode that uses one frame
15 when it is safe to free a page_pool object. Thus, API users
16 must run page_pool_release_page() when a page is leaving the page_pool or
93 * page_pool_dev_alloc_pages(): Get a page from the page allocator or page_pool
108 * page_pool_get_stats(): Retrieve statistics about the page_pool. This API
119 takes a pointer to a ``struct page_pool`` and a pointer to a ``struct
123 statistics about the page_pool.
163 /* internal DMA mapping in page_pool */
169 page_pool = page_pool_create(&pp_params);
175 err = xdp_rxq_info_reg_mem_model(&xdp_rxq, MEM_TYPE_PAGE_POOL, page_pool);
[all …]
Dindex.rst28 page_pool
/Linux-v6.1/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.1/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.1/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.1/drivers/net/ethernet/engleder/
Dtsnep.h116 struct page_pool *page_pool; member
Dtsnep_main.c612 page_pool_put_full_page(rx->page_pool, entry->page, in tsnep_rx_ring_cleanup()
617 if (rx->page_pool) in tsnep_rx_ring_cleanup()
618 page_pool_destroy(rx->page_pool); in tsnep_rx_ring_cleanup()
637 page = page_pool_dev_alloc_pages(rx->page_pool); in tsnep_rx_alloc_buffer()
684 rx->page_pool = page_pool_create(&pp_params); in tsnep_rx_ring_init()
685 if (IS_ERR(rx->page_pool)) { in tsnep_rx_ring_init()
686 retval = PTR_ERR(rx->page_pool); in tsnep_rx_ring_init()
687 rx->page_pool = NULL; in tsnep_rx_ring_init()
779 dma_dir = page_pool_get_dma_dir(rx->page_pool); in tsnep_rx_poll()
807 page_pool_release_page(rx->page_pool, page); in tsnep_rx_poll()
[all …]
/Linux-v6.1/drivers/net/ethernet/ti/
Dcpsw_priv.c1105 struct page_pool *pool; in cpsw_fill_rx_channels()
1112 pool = cpsw->page_pool[ch]; in cpsw_fill_rx_channels()
1146 static struct page_pool *cpsw_create_page_pool(struct cpsw_common *cpsw, in cpsw_create_page_pool()
1150 struct page_pool *pool; in cpsw_create_page_pool()
1168 struct page_pool *pool; in cpsw_create_rx_pool()
1176 cpsw->page_pool[ch] = pool; in cpsw_create_rx_pool()
1185 struct page_pool *pool; in cpsw_ndev_create_xdp_rxq()
1188 pool = cpsw->page_pool[ch]; in cpsw_ndev_create_xdp_rxq()
1226 page_pool_destroy(cpsw->page_pool[ch]); in cpsw_destroy_xdp_rxqs()
1227 cpsw->page_pool[ch] = NULL; in cpsw_destroy_xdp_rxqs()
[all …]
Dcpsw_priv.h359 struct page_pool *page_pool[CPSW_MAX_QUEUES]; member
/Linux-v6.1/drivers/net/ethernet/broadcom/bnxt/
Dbnxt_xdp.c159 page_pool_recycle_direct(rxr->page_pool, tx_buf->page); in bnxt_tx_int_xdp()
215 page_pool_recycle_direct(rxr->page_pool, page); in bnxt_xdp_buff_frags_free()
313 page_pool_recycle_direct(rxr->page_pool, page); in bnxt_rx_xdp()
467 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.1/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.1/drivers/net/ethernet/stmicro/stmmac/
Dstmmac.h100 struct page_pool *page_pool; member
/Linux-v6.1/drivers/net/ethernet/marvell/
Dmvneta.c713 struct page_pool *page_pool; member
1936 page = page_pool_alloc_pages(rxq->page_pool, in mvneta_rx_refill()
2009 page_pool_put_full_page(rxq->page_pool, data, false); in mvneta_rxq_drop_pkts()
2013 page_pool_destroy(rxq->page_pool); in mvneta_rxq_drop_pkts()
2014 rxq->page_pool = NULL; in mvneta_rxq_drop_pkts()
2075 page_pool_put_full_page(rxq->page_pool, in mvneta_xdp_put_buff()
2079 page_pool_put_page(rxq->page_pool, virt_to_head_page(xdp->data), in mvneta_xdp_put_buff()
2327 dma_dir = page_pool_get_dma_dir(rxq->page_pool); in mvneta_swbm_rx_frame()
2360 dma_dir = page_pool_get_dma_dir(rxq->page_pool); in mvneta_swbm_add_rx_fragment()
2383 page_pool_put_full_page(rxq->page_pool, page, true); in mvneta_swbm_add_rx_fragment()
[all …]
/Linux-v6.1/drivers/net/
Dxen-netfront.c156 struct page_pool *page_pool; member
281 page = page_pool_alloc_pages(queue->page_pool, in xennet_alloc_one_rx_buffer()
1844 page_pool_destroy(queue->page_pool); in xennet_disconnect_backend()
2170 queue->page_pool = page_pool_create(&pp_params); in xennet_create_page_pool()
2171 if (IS_ERR(queue->page_pool)) { in xennet_create_page_pool()
2172 err = PTR_ERR(queue->page_pool); in xennet_create_page_pool()
2173 queue->page_pool = NULL; in xennet_create_page_pool()
2185 MEM_TYPE_PAGE_POOL, queue->page_pool); in xennet_create_page_pool()
2195 page_pool_destroy(queue->page_pool); in xennet_create_page_pool()
2196 queue->page_pool = NULL; in xennet_create_page_pool()
/Linux-v6.1/drivers/net/ethernet/hisilicon/hns3/
Dhns3_debugfs.c1098 READ_ONCE(ring->page_pool->pages_state_hold_cnt)); in hns3_dump_page_pool_info()
1100 atomic_read(&ring->page_pool->pages_state_release_cnt)); in hns3_dump_page_pool_info()
1101 sprintf(result[j++], "%u", ring->page_pool->p.pool_size); in hns3_dump_page_pool_info()
1102 sprintf(result[j++], "%u", ring->page_pool->p.order); in hns3_dump_page_pool_info()
1103 sprintf(result[j++], "%d", ring->page_pool->p.nid); in hns3_dump_page_pool_info()
1104 sprintf(result[j++], "%uK", ring->page_pool->p.max_len / 1024); in hns3_dump_page_pool_info()
1123 if (!priv->ring[h->kinfo.num_tqps].page_pool) { in hns3_dbg_page_pool_info()
/Linux-v6.1/drivers/net/ethernet/mediatek/
Dmtk_eth_soc.c1476 static struct page_pool *mtk_create_page_pool(struct mtk_eth *eth, in mtk_create_page_pool()
1489 struct page_pool *pp; in mtk_create_page_pool()
1517 static void *mtk_page_pool_get_buff(struct page_pool *pp, dma_addr_t *dma_addr, in mtk_page_pool_get_buff()
1532 if (ring->page_pool) in mtk_rx_put_buff()
1533 page_pool_put_full_page(ring->page_pool, in mtk_rx_put_buff()
1768 page_pool_put_full_page(ring->page_pool, in mtk_xdp_run()
1830 if (ring->page_pool) { in mtk_poll_rx()
1835 new_data = mtk_page_pool_get_buff(ring->page_pool, in mtk_poll_rx()
1845 pktlen, page_pool_get_dma_dir(ring->page_pool)); in mtk_poll_rx()
1861 page_pool_put_full_page(ring->page_pool, in mtk_poll_rx()
[all …]
/Linux-v6.1/drivers/net/ethernet/freescale/
Dfec.h548 struct page_pool *page_pool; member

12