]> git.baikalelectronics.ru Git - kernel.git/commit
sch_sfq: dont put new flow at the end of flows
authorEric Dumazet <eric.dumazet@gmail.com>
Sun, 1 Jan 2012 18:33:31 +0000 (18:33 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 3 Jan 2012 17:52:09 +0000 (12:52 -0500)
commit6245a8d877d961accc431642c5f70c01ea726c82
treed70709d26a3833e2747126d221bbb2aa3f28ebd7
parent16fb9ec5a6865322f28dab0673da113bf46ee118
sch_sfq: dont put new flow at the end of flows

SFQ enqueue algo puts a new flow _behind_ all pre-existing flows in the
circular list. In fact this is probably an old SFQ implementation bug.

100 Mbits = ~8333 full frames per second, or ~8 frames per ms.

With 50 flows, it means your "new flow" will have to wait 50 packets
being sent before its own packet. Thats the ~6ms.

We certainly can change SFQ to give a priority advantage to new flows,
so that next dequeued packet is taken from a new flow, not an old one.

Reported-by: Dave Taht <dave.taht@gmail.com>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_sfq.c