/kernel/linux/linux-5.10/include/net/ |
H A D | page_pool.h | 3 * page_pool.h 9 * DOC: page_pool allocator 11 * This page_pool allocator is optimized for the XDP mode that 20 * when it is safe to dealloactor page_pool object. Thus, API users 22 * "leaving" the page_pool. Or call page_pool_put_page() where 37 #define PP_FLAG_DMA_MAP BIT(0) /* Should page_pool do the DMA 41 * from page_pool will be 82 struct page_pool { struct 99 * For NIC drivers this means, allocate a page_pool per 122 /* A page_pool i [all...] |
H A D | xdp_priv.h | 12 struct page_pool *page_pool; member
|
/kernel/linux/linux-6.6/include/net/page_pool/ |
H A D | types.h | 9 #define PP_FLAG_DMA_MAP BIT(0) /* Should page_pool do the DMA 13 * from page_pool will be 123 struct page_pool { struct 149 * For NIC drivers this means, allocate a page_pool per 176 /* A page_pool is strictly tied to a single RX-queue being 185 struct page *page_pool_alloc_pages(struct page_pool *pool, gfp_t gfp); 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 *poo [all...] |
H A D | helpers.h | 3 * page_pool/helpers.h 9 * DOC: page_pool allocator 11 * The page_pool allocator is optimized for the XDP mode that 20 * when it is safe to free a page_pool object. Thus, API users 22 * the page to a page_pool-aware object like skbs marked with 32 #include <net/page_pool/types.h> 44 bool page_pool_get_stats(struct page_pool *pool, 67 * Get a page from the page allocator or page_pool caches. 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 *poo [all...] |
/kernel/linux/linux-5.10/net/core/ |
H A D | page_pool.c | 3 * page_pool.c 13 #include <net/page_pool.h> 19 #include <trace/events/page_pool.h> 24 static int page_pool_init(struct page_pool *pool, in page_pool_init() 81 struct page_pool *page_pool_create(const struct page_pool_params *params) in page_pool_create() 83 struct page_pool *pool; in page_pool_create() 101 static void page_pool_return_page(struct page_pool *pool, struct page *page); 104 static struct page *page_pool_refill_alloc_cache(struct page_pool *pool) in page_pool_refill_alloc_cache() 156 static struct page *__page_pool_get_cached(struct page_pool *pool) in __page_pool_get_cached() 171 static void page_pool_dma_sync_for_device(struct page_pool *poo [all...] |
H A D | xdp.c | 15 #include <net/page_pool.h> 128 page_pool_destroy(xa->page_pool); in xdp_unreg_mem_model() 283 return ERR_PTR(-EINVAL); /* Setup time check page_pool req */ in __xdp_reg_mem_model() 384 page_pool_put_full_page(xa->page_pool, page, napi_direct); in __xdp_return() 432 page_pool_release_page(xa->page_pool, page); in __xdp_release_frame()
|
/kernel/linux/linux-5.10/include/trace/events/ |
H A D | page_pool.h | 3 #define TRACE_SYSTEM page_pool 12 #include <net/page_pool.h> 16 TP_PROTO(const struct page_pool *pool, 22 __field(const struct page_pool *, pool) 37 TP_printk("page_pool=%p inflight=%d hold=%u release=%u cnt=%llu", 44 TP_PROTO(const struct page_pool *pool, 50 __field(const struct page_pool *, pool) 63 TP_printk("page_pool=%p page=%p pfn=%lu release=%u", 69 TP_PROTO(const struct page_pool *pool, 75 __field(const struct page_pool *, poo [all...] |
/kernel/linux/linux-6.6/include/trace/events/ |
H A D | page_pool.h | 3 #define TRACE_SYSTEM page_pool 12 #include <net/page_pool/types.h> 16 TP_PROTO(const struct page_pool *pool, 22 __field(const struct page_pool *, pool) 37 TP_printk("page_pool=%p inflight=%d hold=%u release=%u cnt=%llu", 44 TP_PROTO(const struct page_pool *pool, 50 __field(const struct page_pool *, pool) 63 TP_printk("page_pool=%p page=%p pfn=0x%lx release=%u", 69 TP_PROTO(const struct page_pool *pool, 75 __field(const struct page_pool *, poo [all...] |
/kernel/linux/linux-6.6/net/core/ |
H A D | page_pool.c | 3 * page_pool.c 13 #include <net/page_pool/helpers.h> 24 #include <trace/events/page_pool.h> 66 * Retrieve statistics about the page_pool. This API is only available 72 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) 161 static void page_pool_producer_unlock(struct page_pool *pool, 171 static int page_pool_init(struct page_pool *pool, in page_pool_init() 246 struct page_pool *page_pool_create(const struct page_pool_params *params) in page_pool_create() 248 struct page_pool *poo in page_pool_create() [all...] |
/kernel/linux/linux-5.10/drivers/net/ethernet/apm/xgene/ |
H A 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() 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_NXTBUFPOO in xgene_enet_rx_frame() 1062 struct xgene_enet_desc_ring *buf_pool, *page_pool; xgene_enet_delete_desc_rings() local 1149 struct xgene_enet_desc_ring *page_pool; xgene_enet_free_desc_rings() local 1309 struct xgene_enet_desc_ring *page_pool = NULL; xgene_enet_create_desc_rings() local 1814 struct xgene_enet_desc_ring *page_pool; xgene_enet_init_hw() local [all...] |
/kernel/linux/linux-6.6/drivers/net/ethernet/apm/xgene/ |
H A 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() 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_NXTBUFPOO in xgene_enet_rx_frame() 1062 struct xgene_enet_desc_ring *buf_pool, *page_pool; xgene_enet_delete_desc_rings() local 1149 struct xgene_enet_desc_ring *page_pool; xgene_enet_free_desc_rings() local 1309 struct xgene_enet_desc_ring *page_pool = NULL; xgene_enet_create_desc_rings() local 1814 struct xgene_enet_desc_ring *page_pool; xgene_enet_init_hw() local [all...] |
/kernel/linux/linux-6.6/drivers/net/vmxnet3/ |
H A D | vmxnet3_xdp.c | 272 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, rbi->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, in vmxnet3_process_xdp() [all...] |
/kernel/linux/linux-6.6/include/net/ |
H A D | xdp_priv.h | 13 struct page_pool *page_pool; member
|
/kernel/linux/linux-5.10/block/ |
H A D | bounce.c | 32 static mempool_t page_pool, isa_page_pool; variable 61 ret = mempool_init_page_pool(&page_pool, POOL_SIZE, 0); in init_emergency_pool() 188 bounce_end_io(bio, &page_pool); in bounce_end_io_write() 209 __bounce_end_io_read(bio, &page_pool); in bounce_end_io_read() 347 if (pool == &page_pool) { in __blk_queue_bounce() 379 pool = &page_pool; in blk_queue_bounce()
|
/kernel/linux/linux-6.6/drivers/net/ethernet/microchip/lan966x/ |
H A D | lan966x_fdma.c | 5 #include <net/page_pool/helpers.h> 19 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, pag in lan966x_fdma_rx_get_frame() 910 struct page_pool *page_pool; lan966x_fdma_reload() local [all...] |
/kernel/linux/linux-6.6/block/ |
H A D | bounce.c | 32 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()
|
/kernel/linux/linux-5.10/drivers/net/ethernet/stmicro/stmmac/ |
H A D | stmmac.h | 24 #include <net/page_pool.h> 74 struct page_pool *page_pool; member
|
/kernel/linux/linux-5.10/drivers/net/ethernet/ti/ |
H A D | cpsw_priv.c | 21 #include <net/page_pool.h> 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[c in cpsw_destroy_xdp_rxqs() [all...] |
/kernel/linux/linux-5.10/drivers/net/ethernet/socionext/ |
H A D | netsec.c | 18 #include <net/page_pool.h> 286 struct page_pool *page_pool; member 728 page = page_pool_dev_alloc_pages(dring->page_pool); in netsec_alloc_rx_data() 733 * page_pool API will map the whole page, skip what's needed for in netsec_alloc_rx_data() 843 /* This is the device Rx buffer from page_pool. No need to remap in netsec_xdp_queue_one() 849 page_pool_get_dma_dir(rx_ring->page_pool); in netsec_xdp_queue_one() 908 page_pool_put_page(dring->page_pool, page, sync, true); in netsec_run_xdp() 918 page_pool_put_page(dring->page_pool, page, sync, true); in netsec_run_xdp() 930 page_pool_put_page(dring->page_pool, pag in netsec_run_xdp() [all...] |
/kernel/linux/linux-6.6/drivers/net/ethernet/socionext/ |
H A D | netsec.c | 18 #include <net/page_pool/helpers.h> 286 struct page_pool *page_pool; member 742 page = page_pool_dev_alloc_pages(dring->page_pool); in netsec_alloc_rx_data() 747 * page_pool API will map the whole page, skip what's needed for in netsec_alloc_rx_data() 857 /* This is the device Rx buffer from page_pool. No need to remap in netsec_xdp_queue_one() 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, pag in netsec_run_xdp() [all...] |
/kernel/linux/linux-5.10/mm/ |
H A D | readahead.c | 179 LIST_HEAD(page_pool); in page_cache_ra_unbounded() 212 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() 238 read_pages(ractl, &page_pool, false); in page_cache_ra_unbounded()
|
/kernel/linux/linux-6.6/drivers/net/ethernet/broadcom/bnxt/ |
H A D | bnxt_xdp.c | 18 #include <net/page_pool/helpers.h> 157 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() 316 page_pool_recycle_direct(rxr->page_pool, page); in bnxt_rx_xdp() 470 struct page_pool *pool, struct xdp_buff *xdp, in bnxt_xdp_build_skb()
|
/kernel/linux/linux-6.6/drivers/net/ethernet/marvell/octeontx2/nic/ |
H A D | otx2_txrx.h | 123 struct page_pool *page_pool; member
|
/kernel/linux/linux-6.6/drivers/net/ |
H A D | veth.c | 29 #include <net/page_pool/helpers.h> 69 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() 749 page = page_pool_dev_alloc_pages(rq->page_pool); in veth_convert_skb_to_xdp_buff() 755 page_pool_put_full_page(rq->page_pool, page, true); in veth_convert_skb_to_xdp_buff() 778 page = page_pool_dev_alloc_pages(rq->page_pool); in veth_convert_skb_to_xdp_buff() 1035 rq->page_pool = page_pool_create(&pp_params); in veth_create_page_pool() 1036 if (IS_ERR(rq->page_pool)) { in veth_create_page_pool() [all...] |
/kernel/linux/linux-6.6/drivers/net/ethernet/stmicro/stmmac/ |
H A D | stmmac.h | 24 #include <net/page_pool/types.h> 108 struct page_pool *page_pool; member
|