Home
last modified time | relevance | path

Searched refs:netmem (Results 1 – 25 of 30) sorted by relevance

12

/linux/include/net/
H A Dnetmem.h142 static inline bool netmem_is_net_iov(const netmem_ref netmem) in netmem_is_net_iov() argument
144 return (__force unsigned long)netmem & NET_IOV; in netmem_is_net_iov()
158 static inline struct page *__netmem_to_page(netmem_ref netmem) in __netmem_to_page() argument
160 return (__force struct page *)netmem; in __netmem_to_page()
163 static inline struct page *netmem_to_page(netmem_ref netmem) in netmem_to_page() argument
165 if (WARN_ON_ONCE(netmem_is_net_iov(netmem))) in netmem_to_page()
168 return __netmem_to_page(netmem); in netmem_to_page()
171 static inline struct net_iov *netmem_to_net_iov(netmem_ref netmem) in netmem_to_net_iov() argument
173 if (netmem_is_net_iov(netmem)) in netmem_to_net_iov()
174 return (struct net_iov *)((__force unsigned long)netmem & in netmem_to_net_iov()
[all …]
/linux/net/core/
H A Dpage_pool.c379 static void page_pool_return_netmem(struct page_pool *pool, netmem_ref netmem);
384 netmem_ref netmem; in page_pool_refill_alloc_cache()
405 netmem = (__force netmem_ref)__ptr_ring_consume(r); in page_pool_refill_alloc_cache()
406 if (unlikely(!netmem)) in page_pool_refill_alloc_cache()
409 if (likely(netmem_is_pref_nid(netmem, pref_nid))) { in page_pool_refill_alloc_cache()
410 pool->alloc.cache[pool->alloc.count++] = netmem; in page_pool_refill_alloc_cache()
417 page_pool_return_netmem(pool, netmem); in page_pool_refill_alloc_cache()
419 netmem = 0; in page_pool_refill_alloc_cache()
426 netmem = pool->alloc.cache[--pool->alloc.count]; in page_pool_refill_alloc_cache()
430 return netmem; in page_pool_refill_alloc_cache()
386 netmem_ref netmem; page_pool_refill_alloc_cache() local
438 netmem_ref netmem; __page_pool_get_cached() local
453 __page_pool_dma_sync_for_device(const struct page_pool * pool,netmem_ref netmem,u32 dma_sync_size) __page_pool_dma_sync_for_device() argument
467 page_pool_dma_sync_for_device(const struct page_pool * pool,netmem_ref netmem,u32 dma_sync_size) page_pool_dma_sync_for_device() argument
481 page_pool_register_dma_index(struct page_pool * pool,netmem_ref netmem,gfp_t gfp) page_pool_register_dma_index() argument
506 page_pool_release_dma_index(struct page_pool * pool,netmem_ref netmem) page_pool_release_dma_index() argument
530 page_pool_dma_map(struct page_pool * pool,netmem_ref netmem,gfp_t gfp) page_pool_dma_map() argument
601 netmem_ref netmem; __page_pool_alloc_netmems_slow() local
661 netmem_ref netmem; page_pool_alloc_netmems() local
708 page_pool_set_pp_info(struct page_pool * pool,netmem_ref netmem) page_pool_set_pp_info() argument
724 page_pool_clear_pp_info(netmem_ref netmem) page_pool_clear_pp_info() argument
731 __page_pool_release_netmem_dma(struct page_pool * pool,netmem_ref netmem) __page_pool_release_netmem_dma() argument
758 page_pool_return_netmem(struct page_pool * pool,netmem_ref netmem) page_pool_return_netmem() argument
785 page_pool_recycle_in_ring(struct page_pool * pool,netmem_ref netmem) page_pool_recycle_in_ring() argument
804 page_pool_recycle_in_cache(netmem_ref netmem,struct page_pool * pool) page_pool_recycle_in_cache() argument
818 __page_pool_page_can_be_recycled(netmem_ref netmem) __page_pool_page_can_be_recycled() argument
832 __page_pool_put_page(struct page_pool * pool,netmem_ref netmem,unsigned int dma_sync_size,bool allow_direct) __page_pool_put_page() argument
904 page_pool_put_unrefed_netmem(struct page_pool * pool,netmem_ref netmem,unsigned int dma_sync_size,bool allow_direct) page_pool_put_unrefed_netmem() argument
980 netmem_ref netmem = netmem_compound_head(data[i]); page_pool_put_netmem_bulk() local
997 netmem_ref netmem = data[i]; page_pool_put_netmem_bulk() local
1028 page_pool_drain_frag(struct page_pool * pool,netmem_ref netmem) page_pool_drain_frag() argument
1048 netmem_ref netmem = pool->frag_page; page_pool_free_frag() local
1063 netmem_ref netmem = pool->frag_page; page_pool_alloc_frag_netmem() local
1113 netmem_ref netmem; page_pool_empty_ring() local
1139 netmem_ref netmem; page_pool_empty_alloc_cache_once() local
1315 netmem_ref netmem; page_pool_update_nid() local
1338 netmem_ref netmem = net_iov_to_netmem(niov); net_mp_niov_set_page_pool() local
1351 netmem_ref netmem = net_iov_to_netmem(niov); net_mp_niov_clear_page_pool() local
[all...]
H A Dnetmem_priv.h6 static inline unsigned long netmem_get_pp_magic(netmem_ref netmem) in netmem_get_pp_magic() argument
8 return netmem_to_nmdesc(netmem)->pp_magic & ~PP_DMA_INDEX_MASK; in netmem_get_pp_magic()
11 static inline void netmem_or_pp_magic(netmem_ref netmem, unsigned long pp_magic) in netmem_or_pp_magic() argument
13 netmem_to_nmdesc(netmem)->pp_magic |= pp_magic; in netmem_or_pp_magic()
16 static inline void netmem_clear_pp_magic(netmem_ref netmem) in netmem_clear_pp_magic() argument
18 WARN_ON_ONCE(netmem_to_nmdesc(netmem)->pp_magic & PP_DMA_INDEX_MASK); in netmem_clear_pp_magic()
20 netmem_to_nmdesc(netmem)->pp_magic = 0; in netmem_clear_pp_magic()
23 static inline bool netmem_is_pp(netmem_ref netmem) in netmem_is_pp() argument
25 return (netmem_get_pp_magic(netmem) & PP_MAGIC_MASK) == PP_SIGNATURE; in netmem_is_pp()
28 static inline void netmem_set_pp(netmem_ref netmem, struct page_pool *pool) in netmem_set_pp() argument
[all …]
H A Dpage_pool_priv.h19 page_pool_set_dma_addr_netmem(netmem_ref netmem, dma_addr_t addr) in page_pool_set_dma_addr_netmem() argument
22 netmem_set_dma_addr(netmem, addr >> PAGE_SHIFT); in page_pool_set_dma_addr_netmem()
27 return addr != (dma_addr_t)netmem_get_dma_addr(netmem) in page_pool_set_dma_addr_netmem()
31 netmem_set_dma_addr(netmem, addr); in page_pool_set_dma_addr_netmem()
41 void page_pool_set_pp_info(struct page_pool *pool, netmem_ref netmem);
42 void page_pool_clear_pp_info(netmem_ref netmem);
47 netmem_ref netmem) in page_pool_set_pp_info() argument
50 static inline void page_pool_clear_pp_info(netmem_ref netmem) in page_pool_clear_pp_info() argument
H A Ddevmem.c468 netmem_ref netmem; in mp_dmabuf_devmem_alloc_netmems()
474 netmem = net_iov_to_netmem(niov); in mp_dmabuf_devmem_alloc_netmems()
476 page_pool_set_pp_info(pool, netmem); in mp_dmabuf_devmem_alloc_netmems()
479 trace_page_pool_state_hold(pool, netmem, pool->pages_state_hold_cnt); in mp_dmabuf_devmem_alloc_netmems()
480 return netmem;
490 bool mp_dmabuf_devmem_release_page(struct page_pool *pool, netmem_ref netmem) in mp_dmabuf_devmem_release_page()
492 long refcount = atomic_long_read(netmem_get_pp_ref_count_ref(netmem)); in mp_dmabuf_devmem_release_page()
494 if (WARN_ON_ONCE(!netmem_is_net_iov(netmem))) in mp_dmabuf_devmem_release_page()
500 page_pool_clear_pp_info(netmem); in mp_dmabuf_devmem_release_page()
502 net_devmem_free_dmabuf(netmem_to_net_iov(netmem)); in mp_dmabuf_devmem_release_page()
466 netmem_ref netmem; mp_dmabuf_devmem_alloc_netmems() local
488 mp_dmabuf_devmem_release_page(struct page_pool * pool,netmem_ref netmem) mp_dmabuf_devmem_release_page() argument
[all...]
H A Dmp_dmabuf_devmem.h20 bool mp_dmabuf_devmem_release_page(struct page_pool *pool, netmem_ref netmem);
38 mp_dmabuf_devmem_release_page(struct page_pool *pool, netmem_ref netmem) in mp_dmabuf_devmem_release_page() argument
H A Dxdp.c433 void __xdp_return(netmem_ref netmem, enum xdp_mem_type mem_type, in __xdp_return() argument
438 netmem = netmem_compound_head(netmem); in __xdp_return()
444 page_pool_put_full_netmem(netmem_get_pp(netmem), netmem, in __xdp_return()
448 page_frag_free(__netmem_address(netmem)); in __xdp_return()
451 put_page(__netmem_to_page(netmem)); in __xdp_return()
543 void xdp_return_frag(netmem_ref netmem, const struct xdp_buff *xdp) in xdp_return_frag() argument
545 __xdp_return(netmem, xdp->rxq->mem.type, true, NULL); in xdp_return_frag()
H A Dskbuff.c123 * netmem is a page.
126 offsetof(skb_frag_t, netmem));
128 sizeof_field(skb_frag_t, netmem));
1023 bool napi_pp_put_page(netmem_ref netmem) in napi_pp_put_page()
1025 netmem = netmem_compound_head(netmem); in napi_pp_put_page()
1027 if (unlikely(!netmem_is_pp(netmem))) in napi_pp_put_page()
1030 page_pool_put_full_netmem(netmem_get_pp(netmem), netmem, false); in napi_pp_put_page()
1066 head_netmem = netmem_compound_head(shinfo->frags[i].netmem); in skb_pp_frag_ref()
1021 napi_pp_put_page(netmem_ref netmem) napi_pp_put_page() argument
7470 __get_netmem(netmem_ref netmem) __get_netmem() argument
7479 __put_netmem(netmem_ref netmem) __put_netmem() argument
[all...]
/linux/include/trace/events/
H A Dpage_pool.h45 netmem_ref netmem, u32 release),
47 TP_ARGS(pool, netmem, release),
51 __field(unsigned long, netmem)
58 __entry->netmem = (__force unsigned long)netmem;
60 __entry->pfn = netmem_pfn_trace(netmem);
64 __entry->pool, (void *)__entry->netmem,
65 __entry->netmem & NET_IOV, __entry->pfn, __entry->release)
71 netmem_ref netmem, u32 hold),
73 TP_ARGS(pool, netmem, hold),
77 __field(unsigned long, netmem)
[all …]
/linux/include/net/libeth/
H A Drx.h45 netmem_ref netmem; member
109 buf->netmem = page_pool_dev_alloc_netmem(fq->pp, &buf->offset, in libeth_rx_alloc()
111 if (unlikely(!buf->netmem)) in libeth_rx_alloc()
114 return page_pool_get_dma_addr_netmem(buf->netmem) + buf->offset + in libeth_rx_alloc()
118 void libeth_rx_recycle_slow(netmem_ref netmem);
134 netmem_ref netmem = fqe->netmem; in libeth_rx_sync_for_cpu() local
141 libeth_rx_recycle_slow(netmem); in libeth_rx_sync_for_cpu()
145 page_pool_dma_sync_netmem_for_cpu(netmem_get_pp(netmem), netmem, in libeth_rx_sync_for_cpu()
H A Dxdp.h721 netmem_ref netmem; in libeth_xdp_tx_fill_buf() local
732 netmem = skb_frag_netmem(frag); in libeth_xdp_tx_fill_buf()
734 .addr = page_pool_get_dma_addr_netmem(netmem) + in libeth_xdp_tx_fill_buf()
740 dma_sync_single_for_device(__netmem_get_pp(netmem)->p.dev, desc.addr, in libeth_xdp_tx_fill_buf()
1225 netmem_ref netmem = virt_to_netmem(data); in libeth_xdp_return_va() local
1227 page_pool_put_full_netmem(__netmem_get_pp(netmem), netmem, napi); in libeth_xdp_return_va()
1234 netmem_ref netmem = skb_frag_netmem(&sinfo->frags[i]); in libeth_xdp_return_frags() local
1236 page_pool_put_full_netmem(netmem_get_pp(netmem), netmem, napi); in libeth_xdp_return_frags()
1282 const struct page *page = __netmem_to_page(fqe->netmem); in libeth_xdp_prepare_buff()
/linux/drivers/net/ethernet/intel/libeth/
H A Dxdp.c265 netmem_ref netmem = fqe->netmem; in libeth_xdp_buff_add_frag() local
267 if (!xdp_buff_add_frag(&xdp->base, netmem, in libeth_xdp_buff_add_frag()
268 fqe->offset + netmem_get_pp(netmem)->p.offset, in libeth_xdp_buff_add_frag()
275 libeth_rx_recycle_slow(netmem); in libeth_xdp_buff_add_frag()
315 static void libeth_xdp_put_netmem_bulk(netmem_ref netmem, in libeth_xdp_put_netmem_bulk() argument
321 bq->q[bq->count++] = netmem; in libeth_xdp_put_netmem_bulk()
H A Drx.c222 void __cold libeth_rx_recycle_slow(netmem_ref netmem) in libeth_rx_recycle_slow() argument
224 page_pool_put_full_netmem(netmem_get_pp(netmem), netmem, false); in libeth_rx_recycle_slow()
/linux/drivers/net/ethernet/mellanox/mlx5/core/
H A Den_rx.c278 netmem_ref netmem = page_pool_dev_alloc_netmems(pp); in mlx5e_page_alloc_fragmented() local
280 if (unlikely(!netmem)) in mlx5e_page_alloc_fragmented()
283 page_pool_fragment_netmem(netmem, MLX5E_PAGECNT_BIAS_MAX); in mlx5e_page_alloc_fragmented()
286 .netmem = netmem, in mlx5e_page_alloc_fragmented()
297 netmem_ref netmem = frag_page->netmem; in mlx5e_page_release_fragmented() local
299 if (page_pool_unref_netmem(netmem, drain_count) == 0) in mlx5e_page_release_fragmented()
300 page_pool_put_unrefed_netmem(pp, netmem, -1, true); in mlx5e_page_release_fragmented()
310 if (likely(li->frag_page.netmem)) { in mlx5e_mpwqe_linear_page_refill()
530 netmem_ref netmem = frag_page->netmem; mlx5e_add_skb_shared_info_frag() local
561 netmem_ref netmem = frag_page->netmem; mlx5e_add_skb_frag() local
578 mlx5e_copy_skb_header(struct mlx5e_rq * rq,struct sk_buff * skb,netmem_ref netmem,dma_addr_t addr,int offset_from,int dma_offset,u32 headlen) mlx5e_copy_skb_header() argument
[all...]
/linux/drivers/net/ethernet/meta/fbnic/
H A Dfbnic_txrx.c732 netmem_ref netmem) in fbnic_page_pool_init() argument
736 page_pool_fragment_netmem(netmem, FBNIC_PAGECNT_BIAS_MAX); in fbnic_page_pool_init()
738 rx_buf->netmem = netmem; in fbnic_page_pool_init()
749 return netmem_to_page(rx_buf->netmem); in fbnic_page_pool_get_head()
759 return rx_buf->netmem; in fbnic_page_pool_get_data()
766 netmem_ref netmem = rx_buf->netmem; in fbnic_page_pool_drain() local
768 if (!page_pool_unref_netmem(netmem, rx_buf->pagecnt_bias)) in fbnic_page_pool_drain()
769 page_pool_put_unrefed_netmem(ring->page_pool, netmem, -1, in fbnic_page_pool_drain()
772 rx_buf->netmem = 0; in fbnic_page_pool_drain()
873 static void fbnic_bd_prep(struct fbnic_ring *bdq, u16 id, netmem_ref netmem) in fbnic_bd_prep() argument
[all …]
H A Dfbnic_txrx.h106 netmem_ref netmem; member
/linux/io_uring/
H A Dzcrx.c640 netmem_ref netmem = net_iov_to_netmem(niov); in io_zcrx_scrub()
647 page_pool_put_unrefed_netmem(niov->desc.pp, netmem, -1, false); in io_zcrx_scrub()
1140 netmem_ref netmem; in io_pp_zc_init()
1147 netmem = net_iov_to_netmem(niov); in io_pp_zc_init()
1148 if (!page_pool_unref_and_test(netmem)) in io_pp_zc_init()
1156 netmems[allocated] = netmem; in io_pp_nl_fill()
1257 static bool io_pp_zc_release_netmem(struct page_pool *pp, netmem_ref netmem) in zcrx_flush_rq()
1261 if (WARN_ON_ONCE(!netmem_is_net_iov(netmem))) in io_zcrx_ctrl()
1264 niov = netmem_to_net_iov(netmem); in io_zcrx_ctrl()
1366 netmem_ref netmem in io_copy_page()
624 netmem_ref netmem = net_iov_to_netmem(niov); io_zcrx_return_niov() local
1051 netmem_ref netmem; io_zcrx_ring_refill() local
1119 io_pp_zc_release_netmem(struct page_pool * pp,netmem_ref netmem) io_pp_zc_release_netmem() argument
1220 netmem_ref netmem = netmems[i]; zcrx_return_buffers() local
[all...]
/linux/include/net/page_pool/
H A Dtypes.h103 void (*init_callback)(netmem_ref netmem, void *arg);
301 void page_pool_put_unrefed_netmem(struct page_pool *pool, netmem_ref netmem,
/linux/include/linux/
H A Dskbuff.h41 #include <net/netmem.h>
362 netmem_ref netmem; member
423 * @f_off: offset from start of f->netmem
2552 netmem_ref netmem, int off, in skb_frag_fill_netmem_desc()
2555 frag->netmem = netmem; in skb_frag_fill_netmem_desc()
2568 int i, netmem_ref netmem, in __skb_fill_netmem_desc_noacc()
2573 skb_frag_fill_netmem_desc(frag, netmem, off, size); in __skb_fill_netmem_desc_noacc()
2600 * @netmem: the netmem t
2553 skb_frag_fill_netmem_desc(skb_frag_t * frag,netmem_ref netmem,int off,int size) skb_frag_fill_netmem_desc() argument
2569 __skb_fill_netmem_desc_noacc(struct skb_shared_info * shinfo,int i,netmem_ref netmem,int off,int size) __skb_fill_netmem_desc_noacc() argument
2611 __skb_fill_netmem_desc(struct sk_buff * skb,int i,netmem_ref netmem,int off,int size) __skb_fill_netmem_desc() argument
2642 skb_fill_netmem_desc(struct sk_buff * skb,int i,netmem_ref netmem,int off,int size) skb_fill_netmem_desc() argument
2692 skb_add_rx_frag_netmem(struct sk_buff * skb,int i,netmem_ref netmem,int off,int size,unsigned int truesize) skb_add_rx_frag_netmem() argument
3981 skb_can_coalesce_netmem(struct sk_buff * skb,int i,netmem_ref netmem,int off) skb_can_coalesce_netmem() argument
[all...]
/linux/Documentation/networking/
H A Dindex.rst86 netmem
/linux/Documentation/translations/zh_CN/networking/
H A Dindex.rst28 netmem
/linux/drivers/net/ethernet/intel/iavf/
H A Diavf_txrx.c726 libeth_rx_recycle_slow(rx_fqes->netmem); in iavf_clean_rx_ring()
1200 u32 hr = netmem_get_pp(rx_buffer->netmem)->p.offset; in iavf_add_rx_frag()
1203 rx_buffer->netmem, rx_buffer->offset + hr, in iavf_add_rx_frag()
1218 struct page *buf_page = __netmem_to_page(rx_buffer->netmem); in iavf_build_skb()
/linux/drivers/net/ethernet/intel/ice/
H A Dice_txrx.c555 libeth_rx_recycle_slow(rx_ring->rx_fqes[i].netmem); in ice_clean_rx_ring()
558 libeth_rx_recycle_slow(rx_ring->hdr_fqes[i].netmem); in ice_clean_rx_ring()
870 libeth_rx_recycle_slow(fq.fqes[ntu].netmem); in ice_alloc_rx_bufs()
1012 rx_buf->netmem = 0; in ice_clean_rx_irq()
/linux/drivers/net/ethernet/intel/idpf/
H A Didpf_txrx.c349 if (unlikely(!rx_buf->netmem)) in idpf_rx_page_rel()
352 libeth_rx_recycle_slow(rx_buf->netmem); in idpf_rx_page_rel()
354 rx_buf->netmem = 0; in idpf_rx_page_rel()
3469 if (unlikely(netmem_is_net_iov(buf->netmem)) || in idpf_rx_hsplit_wa()
3473 hdr_page = __netmem_to_page(hdr->netmem); in idpf_rx_hsplit_wa()
3474 buf_page = __netmem_to_page(buf->netmem); in idpf_rx_hsplit_wa()
3618 hdr->netmem = 0; in idpf_rx_splitq_clean()
3622 rx_buf->netmem = 0; in idpf_rx_splitq_clean()
/linux/drivers/net/ethernet/broadcom/bnxt/
H A Dbnxt.c964 netmem_ref netmem; in __bnxt_alloc_rx_netmem() local
967 netmem = page_pool_alloc_frag_netmem(rxr->page_pool, offset, in __bnxt_alloc_rx_netmem()
970 netmem = page_pool_alloc_netmems(rxr->page_pool, gfp); in __bnxt_alloc_rx_netmem()
973 if (!netmem) in __bnxt_alloc_rx_netmem()
976 *mapping = page_pool_get_dma_addr_netmem(netmem) + *offset; in __bnxt_alloc_rx_netmem()
977 return netmem; in __bnxt_alloc_rx_netmem()
1072 netmem_ref netmem; in bnxt_alloc_rx_netmem()
1074 netmem = __bnxt_alloc_rx_netmem(bp, &mapping, rxr, &offset, gfp); in bnxt_alloc_rx_netmem()
1075 if (!netmem) in bnxt_alloc_rx_netmem()
1085 rx_agg_buf->netmem in bnxt_alloc_rx_netmem()
1069 netmem_ref netmem; bnxt_alloc_rx_netmem() local
1129 netmem_ref netmem; bnxt_reuse_rx_agg_bufs() local
1305 netmem_ref netmem; __bnxt_rx_agg_netmems() local
3561 netmem_ref netmem = rx_agg_buf->netmem; bnxt_free_one_rx_agg_ring() local
[all...]

12