]> git.baikalelectronics.ru Git - kernel.git/commit
net_sched: remove generic throttled management
authorEric Dumazet <edumazet@google.com>
Fri, 10 Jun 2016 23:41:39 +0000 (16:41 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 11 Jun 2016 06:58:21 +0000 (23:58 -0700)
commit6cf7e2ed18ef680c904f1bd872a0b753e80e36ac
tree05d9f30419d6a5ef9b503487661959ef29c2fec5
parentc46a7e2b8cea7eb047237a96d10dd3964dbaf9f0
net_sched: remove generic throttled management

__QDISC_STATE_THROTTLED bit manipulation is rather expensive
for HTB and few others.

I already removed it for sch_fq in commit 95ae4840400d
("net: sched: avoid costly atomic operation in fq_dequeue()")
and so far nobody complained.

When one ore more packets are stuck in one or more throttled
HTB class, a htb dequeue() performs two atomic operations
to clear/set __QDISC_STATE_THROTTLED bit, while root qdisc
lock is held.

Removing this pair of atomic operations bring me a 8 % performance
increase on 200 TCP_RR tests, in presence of throttled classes.

This patch has no side effect, since nothing actually uses
disc_is_throttled() anymore.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/pkt_sched.h
include/net/sch_generic.h
net/sched/sch_api.c
net/sched/sch_cbq.c
net/sched/sch_fq.c
net/sched/sch_hfsc.c
net/sched/sch_htb.c
net/sched/sch_netem.c
net/sched/sch_tbf.c