Subject: Re: bond + tc regression ?

From: Vladimir Ivashchenko <[email-masked]>
Date: Sun, 17 May 2009 21:46:41 +0300

> > All child classes have smaller bursts than the parent. However, there are
> > two sub-classes which have ceil at 70% of parent, e.g. ~500mbit each. I
> > don't know HTB internals, perhaps these two classes make the parent class
> > overstretch itself.
> As i remember important to keep sum of child rates lower or equal parent rate.
> Sure ceil of childs must not exceed ceil of parent.
> Sometimes i had mess, when i tried to play with quantum value. After all that 
> i switched to HFSC which works for me flawlessly. Maybe we should give more 
> attention to HTB problem with high speeds and help kernel developers spot 
> problem, if there is any.

In case of HFSC my problem is even worse. With 775mbit ceiling
configured it is passing over 900mbit in reality. Moreover not having
statistics for parent classes makes it difficult to troubleshoot :( I'm
100% sure that it is 900 mbps, I see this on the switch.

Attached is "tc -s -d class show dev bond0" output.

To calculate total traffic rate:

$ cat hfsc-stat.txt | grep rate | grep Kbit | sed 's/Kbit//' | awk
'{ a=a+$2; } END { print a; }'
906955

Did I misconfigure something ?... How can hfsc go above 775mbit when
everything goes via class 1:2 with 775mbit rate & ul ?

> > By the way, I experience the same "overstretching" with hfsc. In any case,
> > I prefer HTB because it reports statistics of parent classes, unlike hfsc.
> Sometimes it happen when some offloading enabled on devices.
> Check ethtool -k device

Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp segmentation offload: off
udp fragmentation offload: off

> I think everything except rx/tx checksumming have to be off, at least for 
> test.
> 
> Disable them by "ethtool -K device tso off " for example.

Doesn't help.

-- 
Best Regards,
Vladimir Ivashchenko
Chief Technology Officer
PrimeTel PLC, Cyprus - www.prime-tel.com
Tel: +357 25 100100 Fax: +357 2210 2211