Home
last modified time | relevance | path

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

123

/openbmc/linux/include/net/page_pool/
H A 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 …]
H A 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()
/openbmc/linux/net/core/
H A 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()
246 struct page_pool *page_pool_create(const struct page_pool_params *params) in page_pool_create()
248 struct page_pool *pool; in page_pool_create()
266 static void page_pool_return_page(struct page_pool *pool, struct page *page);
269 static struct page *page_pool_refill_alloc_cache(struct page_pool *pool) in page_pool_refill_alloc_cache()
322 static struct page *__page_pool_get_cached(struct page_pool *pool) in __page_pool_get_cached()
338 static void page_pool_dma_sync_for_device(struct page_pool *pool, in page_pool_dma_sync_for_device()
[all …]
/openbmc/linux/Documentation/networking/
H A 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 …]
/openbmc/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)
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)
/openbmc/linux/drivers/net/ethernet/apm/xgene/
H A 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 …]
H A 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()
/openbmc/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()
H A Dvmxnet3_xdp.h39 void *vmxnet3_pp_get_buff(struct page_pool *pp, dma_addr_t *dma_addr,
/openbmc/linux/drivers/net/ethernet/microchip/lan966x/
H A 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 …]
/openbmc/linux/include/net/
H A Dxdp_priv.h13 struct page_pool *page_pool; member
/openbmc/linux/block/
H A 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()
/openbmc/linux/drivers/net/ethernet/marvell/octeontx2/nic/
H A Dotx2_txrx.h123 struct page_pool *page_pool; member
H A 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()
1220 if (pool->page_pool) { in otx2_free_bufs()
1221 page_pool_put_full_page(pool->page_pool, page, true); in otx2_free_bufs()
1275 page_pool_destroy(pool->page_pool); in otx2_aura_pool_free()
1276 pool->page_pool = NULL; in otx2_aura_pool_free()
1407 pool->page_pool = NULL; in otx2_pool_init()
1417 pool->page_pool = page_pool_create(&pp_params); in otx2_pool_init()
1418 if (IS_ERR(pool->page_pool)) { in otx2_pool_init()
1420 return PTR_ERR(pool->page_pool); in otx2_pool_init()
/openbmc/linux/drivers/net/
H A 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()
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()
1037 int err = PTR_ERR(rq->page_pool); in veth_create_page_pool()
1039 rq->page_pool = NULL; in veth_create_page_pool()
[all …]
H A Dxen-netfront.c156 struct page_pool *page_pool; member
281 page = page_pool_alloc_pages(queue->page_pool, in xennet_alloc_one_rx_buffer()
1850 page_pool_destroy(queue->page_pool); in xennet_disconnect_backend()
2176 queue->page_pool = page_pool_create(&pp_params); in xennet_create_page_pool()
2177 if (IS_ERR(queue->page_pool)) { in xennet_create_page_pool()
2178 err = PTR_ERR(queue->page_pool); in xennet_create_page_pool()
2179 queue->page_pool = NULL; in xennet_create_page_pool()
2191 MEM_TYPE_PAGE_POOL, queue->page_pool); in xennet_create_page_pool()
2201 page_pool_destroy(queue->page_pool); in xennet_create_page_pool()
2202 queue->page_pool = NULL; in xennet_create_page_pool()
/openbmc/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()
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 …]
/openbmc/linux/drivers/net/ethernet/ti/
H A 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 …]
/openbmc/linux/drivers/net/ethernet/broadcom/bnxt/
H A Dbnxt_xdp.c157 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()
311 page_pool_recycle_direct(rxr->page_pool, page); in bnxt_rx_xdp()
465 struct page_pool *pool, struct xdp_buff *xdp, in bnxt_xdp_build_skb()
H A Dbnxt_xdp.h35 u8 num_frags, struct page_pool *pool,
/openbmc/linux/drivers/net/ethernet/engleder/
H A Dtsnep.h129 struct page_pool *page_pool; member
H A Dtsnep_main.c900 page_pool_put_full_page(rx->page_pool, entry->page, in tsnep_rx_ring_cleanup()
908 if (rx->page_pool) in tsnep_rx_ring_cleanup()
909 page_pool_destroy(rx->page_pool); in tsnep_rx_ring_cleanup()
958 rx->page_pool = page_pool_create(&pp_params); in tsnep_rx_ring_create()
959 if (IS_ERR(rx->page_pool)) { in tsnep_rx_ring_create()
960 retval = PTR_ERR(rx->page_pool); in tsnep_rx_ring_create()
961 rx->page_pool = NULL; in tsnep_rx_ring_create()
1026 page_pool_put_full_page(rx->page_pool, *page, false); in tsnep_rx_free_page_buffer()
1040 rx->page_buffer[i] = page_pool_dev_alloc_pages(rx->page_pool); in tsnep_rx_alloc_page_buffer()
1065 page = page_pool_dev_alloc_pages(rx->page_pool); in tsnep_rx_alloc_buffer()
[all …]
/openbmc/linux/drivers/net/ethernet/wangxun/libwx/
H A Dwx_lib.c177 page_pool_put_full_page(rx_ring->page_pool, rx_buffer->page, false); in wx_dma_sync_frag()
272 page_pool_put_full_page(rx_ring->page_pool, rx_buffer->page, true); in wx_build_skb()
313 page = page_pool_dev_alloc_pages(rx_ring->page_pool); in wx_alloc_mapped_page()
2161 page_pool_put_full_page(rx_ring->page_pool, rx_buffer->page, false); in wx_clean_rx_ring()
2176 page_pool_put_full_page(rx_ring->page_pool, rx_buffer->page, false); in wx_clean_rx_ring()
2225 if (rx_ring->page_pool) { in wx_free_rx_resources()
2226 page_pool_destroy(rx_ring->page_pool); in wx_free_rx_resources()
2227 rx_ring->page_pool = NULL; in wx_free_rx_resources()
2378 rx_ring->page_pool = page_pool_create(&pp_params); in wx_alloc_page_pool()
2379 if (IS_ERR(rx_ring->page_pool)) { in wx_alloc_page_pool()
[all …]
/openbmc/linux/drivers/net/ethernet/marvell/mvpp2/
H A 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 …]
/openbmc/linux/drivers/net/ethernet/stmicro/stmmac/
H A Dstmmac.h108 struct page_pool *page_pool; member

123