/linux-6.12.1/include/net/ |
D | netmem.h | 70 static inline bool netmem_is_net_iov(const netmem_ref netmem) in netmem_is_net_iov() argument 72 return (__force unsigned long)netmem & NET_IOV; in netmem_is_net_iov() 78 static inline struct page *netmem_to_page(netmem_ref netmem) in netmem_to_page() argument 80 if (WARN_ON_ONCE(netmem_is_net_iov(netmem))) in netmem_to_page() 83 return (__force struct page *)netmem; in netmem_to_page() 86 static inline struct net_iov *netmem_to_net_iov(netmem_ref netmem) in netmem_to_net_iov() argument 88 if (netmem_is_net_iov(netmem)) in netmem_to_net_iov() 89 return (struct net_iov *)((__force unsigned long)netmem & in netmem_to_net_iov() 106 static inline int netmem_ref_count(netmem_ref netmem) in netmem_ref_count() argument 111 if (netmem_is_net_iov(netmem)) in netmem_ref_count() [all …]
|
/linux-6.12.1/net/core/ |
D | page_pool.c | 368 static void page_pool_return_page(struct page_pool *pool, netmem_ref netmem); 373 netmem_ref netmem; in page_pool_refill_alloc_cache() local 394 netmem = (__force netmem_ref)__ptr_ring_consume(r); in page_pool_refill_alloc_cache() 395 if (unlikely(!netmem)) in page_pool_refill_alloc_cache() 398 if (likely(netmem_is_pref_nid(netmem, pref_nid))) { in page_pool_refill_alloc_cache() 399 pool->alloc.cache[pool->alloc.count++] = netmem; in page_pool_refill_alloc_cache() 406 page_pool_return_page(pool, netmem); in page_pool_refill_alloc_cache() 408 netmem = 0; in page_pool_refill_alloc_cache() 415 netmem = pool->alloc.cache[--pool->alloc.count]; in page_pool_refill_alloc_cache() 419 return netmem; in page_pool_refill_alloc_cache() [all …]
|
D | netmem_priv.h | 6 static inline unsigned long netmem_get_pp_magic(netmem_ref netmem) in netmem_get_pp_magic() argument 8 return __netmem_clear_lsb(netmem)->pp_magic; 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_clear_lsb(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 __netmem_clear_lsb(netmem)->pp_magic = 0; in netmem_clear_pp_magic() 21 static inline void netmem_set_pp(netmem_ref netmem, struct page_pool *pool) in netmem_set_pp() argument 23 __netmem_clear_lsb(netmem)->pp = pool; in netmem_set_pp() 26 static inline void netmem_set_dma_addr(netmem_ref netmem, in netmem_set_dma_addr() argument 29 __netmem_clear_lsb(netmem)->dma_addr = dma_addr; in netmem_set_dma_addr()
|
D | page_pool_priv.h | 17 page_pool_set_dma_addr_netmem(netmem_ref netmem, dma_addr_t addr) in page_pool_set_dma_addr_netmem() argument 20 netmem_set_dma_addr(netmem, addr >> PAGE_SHIFT); in page_pool_set_dma_addr_netmem() 25 return addr != (dma_addr_t)netmem_get_dma_addr(netmem) in page_pool_set_dma_addr_netmem() 29 netmem_set_dma_addr(netmem, addr); in page_pool_set_dma_addr_netmem() 39 void page_pool_set_pp_info(struct page_pool *pool, netmem_ref netmem); 40 void page_pool_clear_pp_info(netmem_ref netmem); 45 netmem_ref netmem) in page_pool_set_pp_info() argument 48 static inline void page_pool_clear_pp_info(netmem_ref netmem) in page_pool_clear_pp_info() argument
|
D | devmem.c | 351 netmem_ref netmem; in mp_dmabuf_devmem_alloc_netmems() local 357 netmem = net_iov_to_netmem(niov); in mp_dmabuf_devmem_alloc_netmems() 359 page_pool_set_pp_info(pool, netmem); in mp_dmabuf_devmem_alloc_netmems() 362 trace_page_pool_state_hold(pool, netmem, pool->pages_state_hold_cnt); in mp_dmabuf_devmem_alloc_netmems() 363 return netmem; in mp_dmabuf_devmem_alloc_netmems() 373 bool mp_dmabuf_devmem_release_page(struct page_pool *pool, netmem_ref netmem) in mp_dmabuf_devmem_release_page() argument 375 long refcount = atomic_long_read(netmem_get_pp_ref_count_ref(netmem)); in mp_dmabuf_devmem_release_page() 377 if (WARN_ON_ONCE(!netmem_is_net_iov(netmem))) in mp_dmabuf_devmem_release_page() 383 page_pool_clear_pp_info(netmem); in mp_dmabuf_devmem_release_page() 385 net_devmem_free_dmabuf(netmem_to_net_iov(netmem)); in mp_dmabuf_devmem_release_page()
|
D | mp_dmabuf_devmem.h | 20 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
|
D | skbuff.c | 118 offsetof(skb_frag_t, netmem)); 120 sizeof_field(skb_frag_t, netmem)); 879 void skb_add_rx_frag_netmem(struct sk_buff *skb, int i, netmem_ref netmem, in skb_add_rx_frag_netmem() argument 884 skb_fill_netmem_desc(skb, i, netmem, off, size); in skb_add_rx_frag_netmem() 924 static bool is_pp_netmem(netmem_ref netmem) in is_pp_netmem() argument 926 return (netmem_get_pp_magic(netmem) & ~0x3UL) == PP_SIGNATURE; in is_pp_netmem() 1022 bool napi_pp_put_page(netmem_ref netmem) in napi_pp_put_page() argument 1024 netmem = netmem_compound_head(netmem); in napi_pp_put_page() 1033 if (unlikely(!is_pp_netmem(netmem))) in napi_pp_put_page() 1036 page_pool_put_full_netmem(netmem_get_pp(netmem), netmem, false); in napi_pp_put_page() [all …]
|
D | sock.c | 1094 netmem_ref netmem = (__force netmem_ref)__xa_erase( in sock_devmem_dontneed() local 1097 if (!netmem || WARN_ON_ONCE(!netmem_is_net_iov(netmem))) in sock_devmem_dontneed() 1100 netmems[netmem_num++] = netmem; in sock_devmem_dontneed()
|
/linux-6.12.1/include/trace/events/ |
D | page_pool.h | 45 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-6.12.1/include/net/page_pool/ |
D | helpers.h | 217 static inline void page_pool_fragment_netmem(netmem_ref netmem, long nr) in page_pool_fragment_netmem() argument 219 atomic_long_set(netmem_get_pp_ref_count_ref(netmem), nr); in page_pool_fragment_netmem() 245 static inline long page_pool_unref_netmem(netmem_ref netmem, long nr) in page_pool_unref_netmem() argument 247 atomic_long_t *pp_ref_count = netmem_get_pp_ref_count_ref(netmem); in page_pool_unref_netmem() 295 static inline void page_pool_ref_netmem(netmem_ref netmem) in page_pool_ref_netmem() argument 297 atomic_long_inc(&netmem_to_page(netmem)->pp_ref_count); in page_pool_ref_netmem() 305 static inline bool page_pool_is_last_ref(netmem_ref netmem) in page_pool_is_last_ref() argument 308 return page_pool_unref_netmem(netmem, 1) == 0; in page_pool_is_last_ref() 312 netmem_ref netmem, in page_pool_put_netmem() argument 320 if (!page_pool_is_last_ref(netmem)) in page_pool_put_netmem() [all …]
|
D | types.h | 90 void (*init_callback)(netmem_ref netmem, void *arg); 281 void page_pool_put_unrefed_netmem(struct page_pool *pool, netmem_ref netmem,
|
/linux-6.12.1/include/linux/ |
D | skbuff_ref.h | 35 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_page(netmem_to_page(netmem)); in skb_page_unref()
|
D | skbuff.h | 362 netmem_ref netmem; member 2491 netmem_ref netmem, int off, in skb_frag_fill_netmem_desc() argument 2494 frag->netmem = netmem; in skb_frag_fill_netmem_desc() 2507 int i, netmem_ref netmem, in __skb_fill_netmem_desc_noacc() argument 2512 skb_frag_fill_netmem_desc(frag, netmem, off, size); in __skb_fill_netmem_desc_noacc() 2549 netmem_ref netmem, int off, int size) in __skb_fill_netmem_desc() argument 2553 __skb_fill_netmem_desc_noacc(skb_shinfo(skb), i, netmem, off, size); in __skb_fill_netmem_desc() 2555 if (netmem_is_net_iov(netmem)) { in __skb_fill_netmem_desc() 2560 page = netmem_to_page(netmem); in __skb_fill_netmem_desc() 2578 netmem_ref netmem, int off, int size) in skb_fill_netmem_desc() argument [all …]
|
/linux-6.12.1/net/bpf/ |
D | test_run.c | 130 static void xdp_test_run_init_page(netmem_ref netmem, void *arg) in xdp_test_run_init_page() argument 133 phys_to_virt(page_to_phys(netmem_to_page(netmem))); in xdp_test_run_init_page()
|
/linux-6.12.1/net/ipv4/ |
D | tcp_ipv4.c | 2520 void *netmem; local 2522 xa_for_each(&sk->sk_user_frags, index, netmem) 2523 WARN_ON_ONCE(!napi_pp_put_page((__force netmem_ref)netmem));
|