qdisc: add tracepoint qdisc:qdisc_dequeue for dequeued SKBs
authorJesper Dangaard Brouer <brouer@redhat.com>
Tue, 15 Aug 2017 19:11:03 +0000 (21:11 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 16 Aug 2017 21:10:10 +0000 (14:10 -0700)
commite543002f77f463501d47fab43acf7ba881e9dcaf
treedf0bc9e62c8730cca0f90c5c1f1368e849d301d9
parent7440cccee02a72a2e16f26c7cff674c15f5cd85b
qdisc: add tracepoint qdisc:qdisc_dequeue for dequeued SKBs

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>
include/trace/events/qdisc.h [new file with mode: 0644]
net/core/net-traces.c
net/sched/sch_generic.c