xdp: add tracepoints for XDP mem
These tracepoints make it easier to troubleshoot XDP mem id disconnect. The xdp:mem_disconnect tracepoint cannot be replaced via kprobe. It is placed at the last stable place for the pointer to struct xdp_mem_allocator, just before it's scheduled for RCU removal. It also extract info on 'safe_to_remove' and 'force'. Detailed info about in-flight pages is not available at this layer. The next patch will added tracepoints needed at the page_pool layer for this. Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
d956a048cd
commit
f033b688c1
23
include/net/xdp_priv.h
Normal file
23
include/net/xdp_priv.h
Normal file
@@ -0,0 +1,23 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef __LINUX_NET_XDP_PRIV_H__
|
||||
#define __LINUX_NET_XDP_PRIV_H__
|
||||
|
||||
#include <linux/rhashtable.h>
|
||||
|
||||
/* Private to net/core/xdp.c, but used by trace/events/xdp.h */
|
||||
struct xdp_mem_allocator {
|
||||
struct xdp_mem_info mem;
|
||||
union {
|
||||
void *allocator;
|
||||
struct page_pool *page_pool;
|
||||
struct zero_copy_allocator *zc_alloc;
|
||||
};
|
||||
int disconnect_cnt;
|
||||
unsigned long defer_start;
|
||||
struct rhash_head node;
|
||||
struct rcu_head rcu;
|
||||
struct delayed_work defer_wq;
|
||||
unsigned long defer_warn;
|
||||
};
|
||||
|
||||
#endif /* __LINUX_NET_XDP_PRIV_H__ */
|
Reference in New Issue
Block a user