Re: Consider r2q change

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



You really should search the list archives. This question has been asked a 
dozen times in the last year.

Google also turned this up quite quickly.
http://www.docum.org/docum.org/faq/cache/31.html

To copy and paste some previous answers from the list. You will need to sort 
these yourself.

It is documented in HTB manual. The complaint was not displayed
before and sharing was silently wrong.
Quantum of leaf should be between 1500 and 60000 and it is computed
as rate/r2q (or can be supplied independly).
So that if your maximal leaf rate is 1Mbit (120000Bps) then r2q
should be 3. If max rate is 10kbit (1200Bps) then r2q should be 1.
It is warning only and will not affect functionality, only precision.
devik

Smallest rate : 16kbit = 2 kilobyt / r2q (=10) = 200.  And this is < 1500.  So 
you get warnings.
Biggest rate : 100mbit = 12.5 mbyte / r2q = 1.2 Mbyte > 60.000.  So you get 
warnings.  

If you do
tc qdisc add dev eth0 root handle 1: htb default 10 r2q 1
Smallest rate : 16kbit = 2kilobyte / r2k = 2000.  And this is > 1500.  So no 
warnings.
Biggest rate : 100mbit = 12.5 mbyte / r2q = 12.5 Mbyte > 60.000.  So you get 
warnings.  But you can overrule the quantum :
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 128kbit burst 2k 
quantum 60000

Quantum is used when 2 classes are getting more bandwidth then the rate.   So 
it's only important for sharing the remaining bandwidth.  In that case, each 
class may send quantum bytes.


If I understand the source, that message occours when you have a leaf 
class whose calculated quantum (rate/r2q) is less than 1000 byte and the 
kernel set the quantum to 1000 byte.
I've read that the quantum should be bigger than the MTU so I don't 
understand why the kernel don't use a minimum quantum value bigger than 
1500. Someone has a clue?

 From kernel-source-2.6.10/net/sched/sch_htb.c
if (!hopt->quantum && cl->un.leaf.quantum < 1000) {
    printk(KERN_WARNING "HTB: quantum of class %X is small. Consider r2q 
change.\n", cl->classid);
    cl->un.leaf.quantum = 1000;


I hope this helps.



Regards,
Lee

On Thu, 20 Oct 2005 10:12 pm, James Lista wrote:
> nsider r2q change.
> HTB: quantum of class 10002 is big. Consider r2q change.
> HTB: quantum of class 10030 is small. Consider r2q change.
> HTB: quantum of class 10031 is small. Consider r2q change.
_______________________________________________
LARTC mailing list
LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc


[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux