Subject: Re: [PATCH] [RESEND] iproute2 : invalid burst/cburst calculation with hrtimers

From: Jarek Poplawski <[email-masked]>
Date: Thu, 5 Feb 2009 11:56:32 +0000

On Thu, Feb 05, 2009 at 01:09:06PM +0200, Denys Fedoryschenko wrote:
> On Thursday 05 February 2009 12:08:53 Jarek Poplawski wrote:
> >
> > I lost your point... I think it's just like in your (and Martin's)
> > description to your patch. Plus you wrote it was tested OK?!
> Martin just pointed me, that burst/cburst probably is too small.
> 
> I found, that it is too small because of get_hz(). Actually on highres it will 
> be always 1600 (default minimal value).

And these are very good points.

> > BTW, did you try to set the same (29kb) burst/cburst manually? Did
> > you try with half of it (15kb)?
> I didn't, i guess i must calculate corresponding rates for another classes 
> equally. But i try to set HZ variable to 2000 for example, i will see:
> 
> class htb 1:10 parent 1:2 rate 220000Kbit ceil 220000Kbit burst 15317b cburst 
> 15317b
>  Sent 100864803 bytes 115615 pkt (dropped 0, overlimits 0 requeues 0)
>  rate 15426Kbit 2106pps backlog 0b 0p requeues 0
>  lended: 29467 borrowed: 0 giants: 0
>  tokens: 533 ctokens: 533
> 
> But it is difficult to know, if it works fine or not. I will try to do more 
> tests for 2000 and 10000 HZ. The issue, that on that point where i had fault, 
> now is less load, so i have to find another place where i can test 
> differences.

I don't know where else in tc this HZ env. variable is used, so this
could change more than you need. I only wondered if setting this
manually works, so one try should be enough.

Since you tested with double size burst (~3kb?) and it didn't work,
then we know even 10000 (10x) get_hz() would be wrong. This 2x case
is only for curiosity but I think there is no reason to use more than
1000HZ for setting these defaults in tc.

Jarek P.