diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-12-20 22:18:16 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-12-20 22:18:16 +0100 |
commit | aa3e219997e4b949be4199660936099ded0b401f (patch) | |
tree | e463d695dbf0e92f7fd2c6b3132bbb9c38493829 /include/net/pkt_cls.h | |
parent | typhoon: memory corruption in typhoon_get_drvinfo() (diff) | |
download | linux-aa3e219997e4b949be4199660936099ded0b401f.tar.xz linux-aa3e219997e4b949be4199660936099ded0b401f.zip |
net_sched: sch_sfq: fix allot handling
When deploying SFQ/IFB here at work, I found the allot management was
pretty wrong in sfq, even changing allot from short to int...
We should init allot for each new flow, not using a previous value found
in slot.
Before patch, I saw bursts of several packets per flow, apparently
denying the default "quantum 1514" limit I had on my SFQ class.
class sfq 11:1 parent 11:
(dropped 0, overlimits 0 requeues 0)
backlog 0b 7p requeues 0
allot 11546
class sfq 11:46 parent 11:
(dropped 0, overlimits 0 requeues 0)
backlog 0b 1p requeues 0
allot -23873
class sfq 11:78 parent 11:
(dropped 0, overlimits 0 requeues 0)
backlog 0b 5p requeues 0
allot 11393
After patch, better fairness among each flow, allot limit being
respected, allot is positive :
class sfq 11:e parent 11:
(dropped 0, overlimits 0 requeues 86)
backlog 0b 3p requeues 86
allot 596
class sfq 11:94 parent 11:
(dropped 0, overlimits 0 requeues 0)
backlog 0b 3p requeues 0
allot 1468
class sfq 11:a4 parent 11:
(dropped 0, overlimits 0 requeues 0)
backlog 0b 4p requeues 0
allot 650
class sfq 11:bb parent 11:
(dropped 0, overlimits 0 requeues 0)
backlog 0b 3p requeues 0
allot 596
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/pkt_cls.h')
0 files changed, 0 insertions, 0 deletions