OSDN Git Service

net: sched: remove remaining uses for qdisc_qlen in xmit path
authorJohn Fastabend <john.fastabend@gmail.com>
Thu, 7 Dec 2017 17:54:47 +0000 (09:54 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 8 Dec 2017 18:32:25 +0000 (13:32 -0500)
commit29b86cdac00a82f88b81c16659e64cc624550216
tree30cf667a3752f64da2af6d1c8511d6c2c025b9c6
parent6b3ba9146fe64b9bebb6346c9dcfe3b4851de2d7
net: sched: remove remaining uses for qdisc_qlen in xmit path

sch_direct_xmit() uses qdisc_qlen as a return value but all call sites
of the routine only check if it is zero or not. Simplify the logic so
that we don't need to return an actual queue length value.

This introduces a case now where sch_direct_xmit would have returned
a qlen of zero but now it returns true. However in this case all
call sites of sch_direct_xmit will implement a dequeue() and get
a null skb and abort. This trades tracking qlen in the hotpath for
an extra dequeue operation. Overall this seems to be good for
performance.

Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/pkt_sched.h
net/sched/sch_generic.c