net_sched: RCU conversion of stab
authorEric Dumazet <eric.dumazet@gmail.com>
Thu, 20 Jan 2011 03:48:19 +0000 (03:48 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 21 Jan 2011 00:59:32 +0000 (16:59 -0800)
commita2da570d62fcb9e8816f6920e1ec02c706b289fa
tree9a24b76262c40ec2f1be11e29e224c7d7b20fa26
parentfd245a4adb5288eac37250875f237c40a20a1944
net_sched: RCU conversion of stab

This patch converts stab qdisc management to RCU, so that we can perform
the qdisc_calculate_pkt_len() call before getting qdisc lock.

This shortens the lock's held time in __dev_xmit_skb().

This permits more qdiscs to get TCQ_F_CAN_BYPASS status, avoiding lot of
cache misses and so reducing latencies.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
CC: Patrick McHardy <kaber@trash.net>
CC: Jesper Dangaard Brouer <hawk@diku.dk>
CC: Jarek Poplawski <jarkao2@gmail.com>
CC: Jamal Hadi Salim <hadi@cyberus.ca>
CC: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/sch_generic.h
net/core/dev.c
net/sched/sch_api.c
net/sched/sch_generic.c