Star64_linux/net
Paolo Valente be72f63b4c sched: add missing group change to qfq_change_class
[Resending again, as the text was corrupted by the email client]

To speed up operations, QFQ internally divides classes into
groups. Which group a class belongs to depends on the ratio between
the maximum packet length and the weight of the class. Unfortunately
the function qfq_change_class lacks the steps for changing the group
of a class when the ratio max_pkt_len/weight of the class changes.

For example, when the last of the following three commands is
executed, the group of class 1:1 is not correctly changed:

tc disc add dev XXX root handle 1: qfq
tc class add dev XXX parent 1: qfq classid 1:1 weight 1
tc class change dev XXX parent 1: classid 1:1 qfq weight 4

Not changing the group of a class does not affect the long-term
bandwidth guaranteed to the class, as the latter is independent of the
maximum packet length, and correctly changes (only) if the weight of
the class changes. In contrast, if the group of the class is not
updated, the class is still guaranteed the short-term bandwidth and
packet delay related to its old group, instead of the guarantees that
it should receive according to its new weight and/or maximum packet
length. This may also break service guarantees for other classes.
This patch adds the missing operations.

Signed-off-by: Paolo Valente <paolo.valente@unimore.it>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-08-08 16:02:05 -07:00
..
9p
802
8021q
appletalk
atm
ax25
batman-adv batman-adv: select an internet gateway if none was chosen 2012-08-06 13:23:46 -07:00
bluetooth
bridge bridge: make port attributes const 2012-07-30 14:53:22 -07:00
caif netvm: prevent a stream-specific deadlock 2012-07-31 18:42:47 -07:00
can
ceph libceph: fix crypto key null deref, memory leak 2012-08-02 09:19:20 -07:00
core net: force dst_default_metrics to const section 2012-08-08 16:00:28 -07:00
dcb
dccp
decnet ipv4: Restore old dst_free() behavior. 2012-07-31 14:41:38 -07:00
dns_resolver
dsa
ethernet
ieee802154
ipv4 net: fib: fix incorrect call_rcu_bh() 2012-08-08 15:57:46 -07:00
ipv6 net: ipv6: fix TCP early demux 2012-08-06 13:33:21 -07:00
ipx
irda
iucv
key
l2tp
lapb
llc llc: free the right skb 2012-08-06 13:30:01 -07:00
mac80211 Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211 2012-08-02 13:49:38 -04:00
mac802154
netfilter
netlabel
netlink
netrom
nfc
openvswitch Revert "openvswitch: potential NULL deref in sample()" 2012-07-27 13:45:51 -07:00
packet af_packet: Quiet sparse noise about using plain integer as NULL pointer 2012-08-08 15:43:22 -07:00
phonet
rds
rfkill
rose
rxrpc
sched sched: add missing group change to qfq_change_class 2012-08-08 16:02:05 -07:00
sctp netvm: prevent a stream-specific deadlock 2012-07-31 18:42:47 -07:00
sunrpc Merge branch 'akpm' (Andrew's patch-bomb) 2012-07-31 19:25:39 -07:00
tipc
unix Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-08-01 10:26:23 -07:00
wanrouter wanmain: comparing array with NULL 2012-07-24 13:55:21 -07:00
wimax
wireless cfg80211: Clear "beacon_found" on regulatory restore 2012-08-02 15:34:22 +02:00
x25
xfrm Fix unexpected SA hard expiration after changing date 2012-08-02 00:19:17 -07:00
compat.c
Kconfig
Makefile
nonet.c
socket.c
sysctl_net.c