/Linux-v5.15/include/net/ |
D | page_pool.h | 85 struct page_pool { struct 137 struct page *page_pool_alloc_pages(struct page_pool *pool, gfp_t gfp); argument 139 static inline struct page *page_pool_dev_alloc_pages(struct page_pool *pool) in page_pool_dev_alloc_pages() 146 struct page *page_pool_alloc_frag(struct page_pool *pool, unsigned int *offset, 149 static inline struct page *page_pool_dev_alloc_frag(struct page_pool *pool, in page_pool_dev_alloc_frag() 162 inline enum dma_data_direction page_pool_get_dma_dir(struct page_pool *pool) in page_pool_get_dma_dir() 169 struct page_pool *page_pool_create(const struct page_pool_params *params); 172 void page_pool_destroy(struct page_pool *pool); 173 void page_pool_use_xdp_mem(struct page_pool *pool, void (*disconnect)(void *)); 174 void page_pool_release_page(struct page_pool *pool, struct page *page); [all …]
|
D | xdp_priv.h | 12 struct page_pool *page_pool; member
|
D | xdp.h | 55 struct page_pool;
|
/Linux-v5.15/net/core/ |
D | page_pool.c | 29 static int page_pool_init(struct page_pool *pool, in page_pool_init() 90 struct page_pool *page_pool_create(const struct page_pool_params *params) in page_pool_create() 92 struct page_pool *pool; in page_pool_create() 110 static void page_pool_return_page(struct page_pool *pool, struct page *page); 113 static struct page *page_pool_refill_alloc_cache(struct page_pool *pool) in page_pool_refill_alloc_cache() 165 static struct page *__page_pool_get_cached(struct page_pool *pool) in __page_pool_get_cached() 180 static void page_pool_dma_sync_for_device(struct page_pool *pool, in page_pool_dma_sync_for_device() 192 static bool page_pool_dma_map(struct page_pool *pool, struct page *page) in page_pool_dma_map() 215 static void page_pool_set_pp_info(struct page_pool *pool, in page_pool_set_pp_info() 228 static struct page *__page_pool_alloc_page_order(struct page_pool *pool, in __page_pool_alloc_page_order() [all …]
|
D | xdp.c | 134 page_pool_destroy(xa->page_pool); in xdp_rxq_info_unreg_mem_model() 356 page_pool_put_full_page(xa->page_pool, page, napi_direct); in __xdp_return() 406 page_pool_put_page_bulk(xa->page_pool, bq->q, bq->count); in xdp_flush_frame_bulk() 458 page_pool_release_page(xa->page_pool, page); in __xdp_release_frame()
|
D | Makefile | 17 obj-$(CONFIG_PAGE_POOL) += page_pool.o
|
/Linux-v5.15/include/trace/events/ |
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) 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-v5.15/Documentation/networking/ |
D | page_pool.rst | 7 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 122 /* internal DMA mapping in page_pool */ 128 page_pool = page_pool_create(&pp_params); 134 err = xdp_rxq_info_reg_mem_model(&xdp_rxq, MEM_TYPE_PAGE_POOL, page_pool); 147 dma_dir = page_pool_get_dma_dir(dring->page_pool); 150 page_pool_recycle_direct(page_pool, page); 153 page_pool_recycle_direct(page_pool, page); [all …]
|
D | index.rst | 27 page_pool
|
/Linux-v5.15/drivers/net/ethernet/apm/xgene/ |
D | xgene_enet_main.c | 672 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() 713 xgene_enet_free_pagepool(page_pool, raw_desc, exp_desc); in xgene_enet_rx_frame() 727 slots = page_pool->slots - 1; in xgene_enet_rx_frame() 728 head = page_pool->head; in xgene_enet_rx_frame() 739 page = page_pool->frag_page[head]; in xgene_enet_rx_frame() 745 page_pool->frag_page[head] = NULL; in xgene_enet_rx_frame() 749 page_pool->head = head; in xgene_enet_rx_frame() 762 ret = xgene_enet_refill_pagepool(page_pool, NUM_NXTBUFPOOL); in xgene_enet_rx_frame() 1058 struct xgene_enet_desc_ring *buf_pool, *page_pool; in xgene_enet_delete_desc_rings() local [all …]
|
D | xgene_enet_cle.c | 709 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()
|
D | xgene_enet_main.h | 119 struct xgene_enet_desc_ring *page_pool; member
|
/Linux-v5.15/block/ |
D | bounce.c | 31 static mempool_t page_pool; variable 60 ret = mempool_init_page_pool(&page_pool, POOL_SIZE, 0); in init_emergency_pool() 115 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-v5.15/mm/ |
D | readahead.c | 179 LIST_HEAD(page_pool); in page_cache_ra_unbounded() 211 read_pages(ractl, &page_pool, true); in page_cache_ra_unbounded() 221 list_add(&page->lru, &page_pool); in page_cache_ra_unbounded() 225 read_pages(ractl, &page_pool, true); in page_cache_ra_unbounded() 239 read_pages(ractl, &page_pool, false); in page_cache_ra_unbounded()
|
/Linux-v5.15/drivers/net/ethernet/socionext/ |
D | netsec.c | 286 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() 1047 page_pool_release_page(dring->page_pool, page); in netsec_process_rx() 1215 page_pool_put_full_page(dring->page_pool, page, false); in netsec_uninit_pkt_dring() [all …]
|
/Linux-v5.15/drivers/net/ethernet/ti/ |
D | cpsw_priv.c | 1103 struct page_pool *pool; in cpsw_fill_rx_channels() 1110 pool = cpsw->page_pool[ch]; in cpsw_fill_rx_channels() 1144 static struct page_pool *cpsw_create_page_pool(struct cpsw_common *cpsw, in cpsw_create_page_pool() 1148 struct page_pool *pool; in cpsw_create_page_pool() 1166 struct page_pool *pool; in cpsw_create_rx_pool() 1174 cpsw->page_pool[ch] = pool; in cpsw_create_rx_pool() 1183 struct page_pool *pool; in cpsw_ndev_create_xdp_rxq() 1186 pool = cpsw->page_pool[ch]; in cpsw_ndev_create_xdp_rxq() 1224 page_pool_destroy(cpsw->page_pool[ch]); in cpsw_destroy_xdp_rxqs() 1225 cpsw->page_pool[ch] = NULL; in cpsw_destroy_xdp_rxqs() [all …]
|
D | cpsw_priv.h | 358 struct page_pool *page_pool[CPSW_MAX_QUEUES]; member
|
/Linux-v5.15/drivers/net/ethernet/stmicro/stmmac/ |
D | stmmac.h | 100 struct page_pool *page_pool; member
|
/Linux-v5.15/drivers/net/ethernet/marvell/mvpp2/ |
D | mvpp2_main.c | 104 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-v5.15/drivers/net/ |
D | xen-netfront.c | 151 struct page_pool *page_pool; member 273 page = page_pool_dev_alloc_pages(queue->page_pool); in xennet_alloc_one_rx_buffer() 1717 page_pool_destroy(queue->page_pool); in xennet_disconnect_backend() 2074 queue->page_pool = page_pool_create(&pp_params); in xennet_create_page_pool() 2075 if (IS_ERR(queue->page_pool)) { in xennet_create_page_pool() 2076 err = PTR_ERR(queue->page_pool); in xennet_create_page_pool() 2077 queue->page_pool = NULL; in xennet_create_page_pool() 2089 MEM_TYPE_PAGE_POOL, queue->page_pool); in xennet_create_page_pool() 2099 page_pool_destroy(queue->page_pool); in xennet_create_page_pool() 2100 queue->page_pool = NULL; in xennet_create_page_pool()
|
/Linux-v5.15/drivers/net/ethernet/marvell/ |
D | mvneta.c | 682 struct page_pool *page_pool; member 1905 page = page_pool_alloc_pages(rxq->page_pool, in mvneta_rx_refill() 1978 page_pool_put_full_page(rxq->page_pool, data, false); in mvneta_rxq_drop_pkts() 1982 page_pool_destroy(rxq->page_pool); in mvneta_rxq_drop_pkts() 1983 rxq->page_pool = NULL; in mvneta_rxq_drop_pkts() 2041 page_pool_put_full_page(rxq->page_pool, in mvneta_xdp_put_buff() 2043 page_pool_put_page(rxq->page_pool, virt_to_head_page(xdp->data), in mvneta_xdp_put_buff() 2255 dma_dir = page_pool_get_dma_dir(rxq->page_pool); in mvneta_swbm_rx_frame() 2290 dma_dir = page_pool_get_dma_dir(rxq->page_pool); in mvneta_swbm_add_rx_fragment() 2303 page_pool_put_full_page(rxq->page_pool, page, true); in mvneta_swbm_add_rx_fragment() [all …]
|
/Linux-v5.15/drivers/net/ethernet/mellanox/mlx5/core/ |
D | en_rx.c | 270 dma_info->page = page_pool_dev_alloc_pages(rq->page_pool); in mlx5e_page_alloc_pool() 277 page_pool_recycle_direct(rq->page_pool, dma_info->page); in mlx5e_page_alloc_pool() 308 page_pool_recycle_direct(rq->page_pool, dma_info->page); in mlx5e_page_release_dynamic() 311 page_pool_release_page(rq->page_pool, dma_info->page); in mlx5e_page_release_dynamic() 582 if (rq->page_pool) in mlx5e_post_rx_wqes() 583 page_pool_nid_changed(rq->page_pool, numa_mem_id()); in mlx5e_post_rx_wqes() 740 if (rq->page_pool) in mlx5e_post_rx_mpwqes() 741 page_pool_nid_changed(rq->page_pool, numa_mem_id()); in mlx5e_post_rx_mpwqes()
|
D | en.h | 64 struct page_pool; 655 struct page_pool *page_pool; member
|
/Linux-v5.15/drivers/net/ethernet/hisilicon/hns3/ |
D | hns3_enet.h | 461 struct page_pool *page_pool; member
|
D | hns3_enet.c | 3182 if (ring->page_pool) { in hns3_alloc_buffer() 3183 p = page_pool_dev_alloc_frag(ring->page_pool, in hns3_alloc_buffer() 3223 page_pool_put_full_page(ring->page_pool, cb->priv, in hns3_free_buffer() 3313 if (ret || ring->page_pool) in hns3_alloc_and_map_buffer() 3550 if (ring->page_pool) { in hns3_nic_reuse_page() 3875 page_pool_put_full_page(ring->page_pool, desc_cb->priv, in hns3_alloc_skb() 3885 if (ring->page_pool) in hns3_alloc_skb() 3927 if (ring->page_pool) in hns3_add_frag() 4744 ring->page_pool = page_pool_create(&pp_params); in hns3_alloc_page_pool() 4745 if (IS_ERR(ring->page_pool)) { in hns3_alloc_page_pool() [all …]
|