Hi, Firstly I'd change classid's rate so that the sum rate of all 1:1 child classes are not greater than its rate value. This is applicable to your default class 1:4. Secondly, I recommend lowering/setting the ceil value to 10mbit (or slightly lower). Sent from my iPhone On Aug 13, 2013, at 6:35, Horace <horace@xxxxxxxxxxxxxxx> wrote: > Hi, > > Internet <------> (eth1) Router (bond0.10) <-----> switch <------------------> direct connected clients > <-- 10mbit link ---> clients (2ms latency) > > > I've got a very strange problem on tc htb downstream (bond0.10), which I cannot attain rated speed for a htb class 1:2. However, I can attain the rated speed for class 1:3 for the same setting (direct connected clients). I'm almost suspecting it is a hardware related issue, but when I changed the 1:2 class ceil value to 30mbit, I can attain the full 10mbit (granted it is a 10mbit down link). > > I've also tried the settings with upstream on eth1, no problem at all on both 1:2 and 1:3. Seems the problem only appears on downstream. I don't have any policy on the ingress queue right now. And also nothing on the iptables. > > Tried turn off tso/gso, enlarge bond0.10 txqueue, set clocksource to hpet, set burst to 20-200k, not much difference. > > Any suggestion how to solve this problem? > > Here's tc-htb config > ==================== > tc qdisc del dev bond0.10 root > tc qdisc add dev bond0.10 root handle 1: htb default 4 > tc class add dev bond0.10 parent 1: classid 1:1 htb rate 1000Mbit prio 1 > tc class add dev bond0.10 parent 1:1 classid 1:2 htb rate 10mbit ceil 10mbit prio 1 > tc class add dev bond0.10 parent 1:1 classid 1:3 htb rate 10mbit ceil 10mbit prio 1 > tc class add dev bond0.10 parent 1:1 classid 1:4 htb rate 1000mbit prio 2 > > tc qdisc add dev bond0.10 parent 1:2 pfifo > tc qdisc add dev bond0.10 parent 1:3 pfifo > tc qdisc add dev bond0.10 parent 1:4 pfifo > > tc filter add dev bond0.10 protocol ip parent 1: prio 1 u32 \ > match ip dst 1.1.1.8/29 flowid 1:2 > tc filter add dev bond0.10 protocol ip parent 1: prio 1 u32 \ > match ip dst 1.1.1.81 flowid 1:3 > > Here's the stats > ================ > class htb 1:1 root rate 1000Mbit ceil 1000Mbit burst 1375b/8 mpu 0b overhead 0b cburst 1375b/8 mpu 0b overhead 0b level 7 > Sent 71611952 bytes 127507 pkt (dropped 0, overlimits 0 requeues 0) > rate 8919Kbit 1633pps backlog 0b 0p requeues 0 > lended: 0 borrowed: 0 giants: 0 > tokens: 16 ctokens: 16 > > class htb 1:2 parent 1:1 leaf 8828: prio 1 quantum 125000 rate 10000Kbit ceil 10000Kbit burst 1600b/8 mpu 0b overhead 0b cburst 1600b/8 mpu 0b overhead 0b level 0 > Sent 18463384 bytes 20911 pkt (dropped 0, overlimits 0 requeues 0) > rate 4270Kbit 398pps backlog 0b 1p requeues 0 > lended: 16930 borrowed: 0 giants: 0 > tokens: -18459 ctokens: -18459 <=============== is it not supposed to be negative when the rate is not more than 10mbit? > > class htb 1:3 parent 1:1 leaf 8829: prio 1 quantum 125000 rate 10000Kbit ceil 10000Kbit burst 1600b/8 mpu 0b overhead 0b cburst 1600b/8 mpu 0b overhead 0b level 0 > Sent 9921 bytes 61 pkt (dropped 0, overlimits 0 requeues 0) > rate 672bit 0pps backlog 0b 0p requeues 0 > lended: 61 borrowed: 0 giants: 0 > tokens: 16610 ctokens: 16610 > > class htb 1:4 parent 1:1 leaf 882a: prio 2 quantum 200000 rate 1000Mbit ceil 1000Mbit burst 1375b/8 mpu 0b overhead 0b cburst 1375b/8 mpu 0b overhead 0b level 0 > Sent 53138757 bytes 106536 pkt (dropped 0, overlimits 0 requeues 0) > rate 4647Kbit 1235pps backlog 0b 0p requeues 0 > lended: 97706 borrowed: 0 giants: 0 > tokens: 187 ctokens: 187 > > > > Horace Ng > -- > To unsubscribe from this list: send the line "unsubscribe lartc" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe lartc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html