mirror of
https://github.com/torvalds/linux.git
synced 2024-12-22 02:52:56 +00:00
e543002f77
The main purpose of this tracepoint is to monitor bulk dequeue in the network qdisc layer, as it cannot be deducted from the existing qdisc stats. The txq_state can be used for determining the reason for zero packet dequeues, see enum netdev_queue_state_t. Notice all packets doesn't necessary activate this tracepoint. As qdiscs with flag TCQ_F_CAN_BYPASS, can directly invoke sch_direct_xmit() when qdisc_qlen is zero. Remember that perf record supports filters like: perf record -e qdisc:qdisc_dequeue \ --filter 'ifindex == 4 && (packets > 1 || txq_state > 0)' Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
44 lines
1.0 KiB
C
44 lines
1.0 KiB
C
/*
|
|
* consolidates trace point definitions
|
|
*
|
|
* Copyright (C) 2009 Neil Horman <nhorman@tuxdriver.com>
|
|
*/
|
|
|
|
#include <linux/netdevice.h>
|
|
#include <linux/etherdevice.h>
|
|
#include <linux/string.h>
|
|
#include <linux/if_arp.h>
|
|
#include <linux/inetdevice.h>
|
|
#include <linux/inet.h>
|
|
#include <linux/interrupt.h>
|
|
#include <linux/export.h>
|
|
#include <linux/netpoll.h>
|
|
#include <linux/sched.h>
|
|
#include <linux/delay.h>
|
|
#include <linux/rcupdate.h>
|
|
#include <linux/types.h>
|
|
#include <linux/workqueue.h>
|
|
#include <linux/netlink.h>
|
|
#include <linux/net_dropmon.h>
|
|
#include <linux/slab.h>
|
|
|
|
#include <asm/unaligned.h>
|
|
#include <asm/bitops.h>
|
|
|
|
#define CREATE_TRACE_POINTS
|
|
#include <trace/events/skb.h>
|
|
#include <trace/events/net.h>
|
|
#include <trace/events/napi.h>
|
|
#include <trace/events/sock.h>
|
|
#include <trace/events/udp.h>
|
|
#include <trace/events/fib.h>
|
|
#include <trace/events/qdisc.h>
|
|
#if IS_ENABLED(CONFIG_IPV6)
|
|
#include <trace/events/fib6.h>
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(fib6_table_lookup);
|
|
#endif
|
|
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(kfree_skb);
|
|
|
|
EXPORT_TRACEPOINT_SYMBOL_GPL(napi_poll);
|