Home
last modified time | relevance | path

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

12

/linux/include/net/
H A Dnetmem.h156 /* netmem */ in net_iov_idx()
168 static inline bool netmem_is_net_iov(const netmem_ref netmem)
170 return (__force unsigned long)netmem & NET_IOV;
174 * __netmem_to_page - unsafely get pointer to the &page backing @netmem in netmem_is_net_iov()
175 * @netmem: netmem reference to convert in netmem_is_net_iov()
177 * Unsafe version of netmem_to_page(). When @netmem is always page-backed,
179 * object code (no check for the LSB, no WARN). When @netmem points to IOV,
182 * Return: pointer to the &page (garbage if @netmem is not page-backed).
184 static inline struct page *__netmem_to_page(netmem_ref netmem)
172 netmem_is_net_iov(const netmem_ref netmem) netmem_is_net_iov() argument
188 __netmem_to_page(netmem_ref netmem) __netmem_to_page() argument
193 netmem_to_page(netmem_ref netmem) netmem_to_page() argument
201 netmem_to_net_iov(netmem_ref netmem) netmem_to_net_iov() argument
231 netmem_ref_count(netmem_ref netmem) netmem_ref_count() argument
242 netmem_pfn_trace(netmem_ref netmem) netmem_pfn_trace() argument
263 __netmem_to_nmdesc(netmem_ref netmem) __netmem_to_nmdesc() argument
283 __netmem_clear_lsb(netmem_ref netmem) __netmem_clear_lsb() argument
316 __netmem_get_pp(netmem_ref netmem) __netmem_get_pp() argument
321 netmem_get_pp(netmem_ref netmem) netmem_get_pp() argument
326 netmem_get_pp_ref_count_ref(netmem_ref netmem) netmem_get_pp_ref_count_ref() argument
331 netmem_is_pref_nid(netmem_ref netmem,int pref_nid) netmem_is_pref_nid() argument
343 netmem_compound_head(netmem_ref netmem) netmem_compound_head() argument
363 __netmem_address(netmem_ref netmem) __netmem_address() argument
368 netmem_address(netmem_ref netmem) netmem_address() argument
383 netmem_is_pfmemalloc(netmem_ref netmem) netmem_is_pfmemalloc() argument
391 netmem_get_dma_addr(netmem_ref netmem) netmem_get_dma_addr() argument
[all...]
/linux/net/core/
H A Dpage_pool.c376 static void page_pool_return_netmem(struct page_pool *pool, netmem_ref netmem); in page_pool_refill_alloc_cache()
381 netmem_ref netmem; in page_pool_refill_alloc_cache()
402 netmem = (__force netmem_ref)__ptr_ring_consume(r); in page_pool_refill_alloc_cache()
403 if (unlikely(!netmem)) in page_pool_refill_alloc_cache()
406 if (likely(netmem_is_pref_nid(netmem, pref_nid))) { in page_pool_refill_alloc_cache()
407 pool->alloc.cache[pool->alloc.count++] = netmem; in page_pool_refill_alloc_cache()
414 page_pool_return_netmem(pool, netmem); in page_pool_refill_alloc_cache()
416 netmem = 0; in page_pool_refill_alloc_cache()
423 netmem = pool->alloc.cache[--pool->alloc.count]; in page_pool_refill_alloc_cache()
427 return netmem; in __page_pool_get_cached()
377 netmem_ref netmem; page_pool_refill_alloc_cache() local
429 netmem_ref netmem; __page_pool_get_cached() local
444 __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
458 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
472 page_pool_register_dma_index(struct page_pool * pool,netmem_ref netmem,gfp_t gfp) page_pool_register_dma_index() argument
497 page_pool_release_dma_index(struct page_pool * pool,netmem_ref netmem) page_pool_release_dma_index() argument
521 page_pool_dma_map(struct page_pool * pool,netmem_ref netmem,gfp_t gfp) page_pool_dma_map() argument
592 netmem_ref netmem; __page_pool_alloc_netmems_slow() local
652 netmem_ref netmem; page_pool_alloc_netmems() local
699 page_pool_set_pp_info(struct page_pool * pool,netmem_ref netmem) page_pool_set_pp_info() argument
715 page_pool_clear_pp_info(netmem_ref netmem) page_pool_clear_pp_info() argument
722 __page_pool_release_netmem_dma(struct page_pool * pool,netmem_ref netmem) __page_pool_release_netmem_dma() argument
749 page_pool_return_netmem(struct page_pool * pool,netmem_ref netmem) page_pool_return_netmem() argument
776 page_pool_recycle_in_ring(struct page_pool * pool,netmem_ref netmem) page_pool_recycle_in_ring() argument
795 page_pool_recycle_in_cache(netmem_ref netmem,struct page_pool * pool) page_pool_recycle_in_cache() argument
809 __page_pool_page_can_be_recycled(netmem_ref netmem) __page_pool_page_can_be_recycled() argument
823 __page_pool_put_page(struct page_pool * pool,netmem_ref netmem,unsigned int dma_sync_size,bool allow_direct) __page_pool_put_page() argument
895 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
971 netmem_ref netmem = netmem_compound_head(data[i]); page_pool_put_netmem_bulk() local
988 netmem_ref netmem = data[i]; page_pool_put_netmem_bulk() local
1019 page_pool_drain_frag(struct page_pool * pool,netmem_ref netmem) page_pool_drain_frag() argument
1039 netmem_ref netmem = pool->frag_page; page_pool_free_frag() local
1054 netmem_ref netmem = pool->frag_page; page_pool_alloc_frag_netmem() local
1104 netmem_ref netmem; page_pool_empty_ring() local
1135 netmem_ref netmem; page_pool_empty_alloc_cache_once() local
1311 netmem_ref netmem; page_pool_update_nid() local
1334 netmem_ref netmem = net_iov_to_netmem(niov); net_mp_niov_set_page_pool() local
1347 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;
23 static inline bool netmem_is_pp(netmem_ref netmem) in netmem_set_pp()
25 return (netmem_get_pp_magic(netmem) & PP_MAGIC_MASK) == PP_SIGNATURE;
28 static inline void netmem_set_pp(netmem_ref netmem, struc in netmem_set_dma_addr()
21 netmem_set_pp(netmem_ref netmem,struct page_pool * pool) netmem_set_pp() argument
26 netmem_set_dma_addr(netmem_ref netmem,unsigned long dma_addr) netmem_set_dma_addr() 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.c446 netmem_ref netmem; in mp_dmabuf_devmem_alloc_netmems() local
452 netmem = net_iov_to_netmem(niov); in mp_dmabuf_devmem_alloc_netmems()
454 page_pool_set_pp_info(pool, netmem); in mp_dmabuf_devmem_alloc_netmems()
457 trace_page_pool_state_hold(pool, netmem, pool->pages_state_hold_cnt); in mp_dmabuf_devmem_alloc_netmems()
458 return netmem; in mp_dmabuf_devmem_alloc_netmems()
468 bool mp_dmabuf_devmem_release_page(struct page_pool *pool, netmem_ref netmem) in mp_dmabuf_devmem_release_page() argument
470 long refcount = atomic_long_read(netmem_get_pp_ref_count_ref(netmem)); in mp_dmabuf_devmem_release_page()
472 if (WARN_ON_ONCE(!netmem_is_net_iov(netmem))) in mp_dmabuf_devmem_release_page()
478 page_pool_clear_pp_info(netmem); in mp_dmabuf_devmem_release_page()
480 net_devmem_free_dmabuf(netmem_to_net_iov(netmem)); in mp_dmabuf_devmem_release_page()
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 Dskbuff.c125 offsetof(skb_frag_t, netmem));
127 sizeof_field(skb_frag_t, netmem));
873 void skb_add_rx_frag_netmem(struct sk_buff *skb, int i, netmem_ref netmem, in skb_add_rx_frag_netmem() argument
878 skb_fill_netmem_desc(skb, i, netmem, off, size); in skb_add_rx_frag_netmem()
1011 bool napi_pp_put_page(netmem_ref netmem) in napi_pp_put_page() argument
1013 netmem = netmem_compound_head(netmem); in napi_pp_put_page()
1015 if (unlikely(!netmem_is_pp(netmem))) in napi_pp_put_page()
1018 page_pool_put_full_netmem(netmem_get_pp(netmem), netmem, false); in napi_pp_put_page()
1054 head_netmem = netmem_compound_head(shinfo->frags[i].netmem); in skb_pp_frag_ref()
7392 void get_netmem(netmem_ref netmem) in get_netmem() argument
[all …]
H A Dsock.c1115 netmem_ref netmem = (__force netmem_ref)__xa_erase( in sock_devmem_dontneed()
1118 if (!netmem || WARN_ON_ONCE(!netmem_is_net_iov(netmem))) in sock_devmem_dontneed()
1121 netmems[netmem_num++] = netmem; in sock_devmem_dontneed()
1109 netmem_ref netmem = (__force netmem_ref)__xa_erase( sock_devmem_dontneed() local
/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/include/linux/
H A Dskbuff_ref.h35 bool napi_pp_put_page(netmem_ref netmem);
37 static inline void skb_page_unref(netmem_ref netmem, bool recycle) in skb_page_unref() argument
40 if (recycle && napi_pp_put_page(netmem)) in skb_page_unref()
43 put_netmem(netmem); in skb_page_unref()
H A Dskbuff.h362 netmem_ref netmem; member
2551 netmem_ref netmem, int off, in skb_frag_fill_netmem_desc() argument
2554 frag->netmem = netmem; in skb_frag_fill_netmem_desc()
2567 int i, netmem_ref netmem, in __skb_fill_netmem_desc_noacc() argument
2572 skb_frag_fill_netmem_desc(frag, netmem, off, size); in __skb_fill_netmem_desc_noacc()
2609 netmem_ref netmem, int off, int size) in __skb_fill_netmem_desc() argument
2613 __skb_fill_netmem_desc_noacc(skb_shinfo(skb), i, netmem, off, size); in __skb_fill_netmem_desc()
2615 if (netmem_is_net_iov(netmem)) { in __skb_fill_netmem_desc()
2620 page = netmem_to_page(netmem); in __skb_fill_netmem_desc()
2638 netmem_ref netmem, int off, int size) in skb_fill_netmem_desc() argument
[all …]
/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/include/net/page_pool/
H A Dmemory_provider.h14 bool (*release_netmem)(struct page_pool *pool, netmem_ref netmem);
46 netmem_ref netmem) in net_mp_netmem_place_in_cache() argument
48 pool->alloc.cache[pool->alloc.count++] = netmem; in net_mp_netmem_place_in_cache()
H A Dtypes.h94 void (*init_callback)(netmem_ref netmem, void *arg);
291 void page_pool_put_unrefed_netmem(struct page_pool *pool, netmem_ref netmem,
/linux/drivers/net/ethernet/mellanox/mlx5/core/
H A Den_rx.c280 netmem_ref netmem = page_pool_dev_alloc_netmems(pp); in mlx5e_page_alloc_fragmented() local
282 if (unlikely(!netmem)) in mlx5e_page_alloc_fragmented()
285 page_pool_fragment_netmem(netmem, MLX5E_PAGECNT_BIAS_MAX); in mlx5e_page_alloc_fragmented()
288 .netmem = netmem, in mlx5e_page_alloc_fragmented()
299 netmem_ref netmem = frag_page->netmem; in mlx5e_page_release_fragmented() local
301 if (page_pool_unref_netmem(netmem, drain_count) == 0) in mlx5e_page_release_fragmented()
302 page_pool_put_unrefed_netmem(pp, netmem, -1, true); in mlx5e_page_release_fragmented()
362 addr = page_pool_get_dma_addr_netmem(frag->frag_page->netmem); in mlx5e_alloc_rx_wqe()
503 netmem_ref netmem = frag_page->netmem; in mlx5e_add_skb_shared_info_frag() local
506 dma_addr_t addr = page_pool_get_dma_addr_netmem(netmem); in mlx5e_add_skb_shared_info_frag()
[all …]
/linux/io_uring/
H A Dzcrx.c564 netmem_ref netmem = net_iov_to_netmem(niov); in io_zcrx_return_niov() local
571 page_pool_put_unrefed_netmem(niov->desc.pp, netmem, -1, false); in io_zcrx_return_niov()
928 netmem_ref netmem; in io_zcrx_ring_refill() local
935 netmem = net_iov_to_netmem(niov); in io_zcrx_ring_refill()
936 if (!page_pool_unref_and_test(netmem)) in io_zcrx_ring_refill()
945 net_mp_netmem_place_in_cache(pp, netmem); in io_zcrx_ring_refill()
958 netmem_ref netmem = net_iov_to_netmem(niov); in io_zcrx_refill_slow() local
962 net_mp_netmem_place_in_cache(pp, netmem); in io_zcrx_refill_slow()
986 static bool io_pp_zc_release_netmem(struct page_pool *pp, netmem_ref netmem) in io_pp_zc_release_netmem() argument
990 if (WARN_ON_ONCE(!netmem_is_net_iov(netmem))) in io_pp_zc_release_netmem()
[all …]
/linux/drivers/net/ethernet/google/gve/
H A Dgve_rx_dqo.c553 buf_state->page_info.netmem, in gve_skb_add_rx_frag()
764 page_info->netmem, in gve_dma_sync()
821 if (!netmem_is_net_iov(buf_state->page_info.netmem)) in gve_rx_dqo()
822 prefetch(netmem_to_page(buf_state->page_info.netmem)); in gve_rx_dqo()
851 netmem_is_net_iov(buf_state->page_info.netmem)) { in gve_rx_dqo()
904 netmem_is_net_iov(buf_state->page_info.netmem))) { in gve_rx_dqo()
H A Dgve.h117 netmem_ref netmem; member
/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/broadcom/bnxt/
H A Dbnxt.c937 netmem_ref netmem; in __bnxt_alloc_rx_netmem() local
940 netmem = page_pool_alloc_frag_netmem(rxr->page_pool, offset, BNXT_RX_PAGE_SIZE, gfp); in __bnxt_alloc_rx_netmem()
942 netmem = page_pool_alloc_netmems(rxr->page_pool, gfp); in __bnxt_alloc_rx_netmem()
945 if (!netmem) in __bnxt_alloc_rx_netmem()
948 *mapping = page_pool_get_dma_addr_netmem(netmem) + *offset; in __bnxt_alloc_rx_netmem()
949 return netmem; in __bnxt_alloc_rx_netmem()
1041 netmem_ref netmem; in bnxt_alloc_rx_netmem() local
1043 netmem = __bnxt_alloc_rx_netmem(bp, &mapping, rxr, &offset, gfp); in bnxt_alloc_rx_netmem()
1044 if (!netmem) in bnxt_alloc_rx_netmem()
1054 rx_agg_buf->netmem = netmem; in bnxt_alloc_rx_netmem()
[all …]
/linux/net/bpf/
H A Dtest_run.c119 static void xdp_test_run_init_page(netmem_ref netmem, void *arg) in xdp_test_run_init_page() argument
122 phys_to_virt(page_to_phys(netmem_to_page(netmem))); in xdp_test_run_init_page()

12