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

[altq 99] Re: cbq update



Hello.
That's true: with my previous patch, the borrowing mechanism is broken if we eliminate ifnow_ .

The problem is (was, hopefully...) in the rmc_delay_action.
In fact, the 
	rmc_update_class_util
compute the underlimit for BOTH the leaf and the root class.
When the borrowing is activated AND the root class is being overlimit, the LEAF class is suspended by the rmc_delay_action.
As far as I understand, the root class is NOT suspended; the leaf clas does.

That's the problem: when the leaf class is suspended, its suspension time is quite high (even if I use the offtime of its parent, like the code currently does) because its avgidle is quite far from zero.
Therefore the session is punished because of the amount of service it has got due to the borrowing.

What I suggest to do is to suspend the leaf class for the amount of time needed for the root class to become underlimit (i.e. suspend the leaf class, but the suspension time lasts the same amount of time as the root class does).

My results now shows that:
- we need just nowp (ifnow_ is no longer required)
- the borrowing works
- steady state and so on are working as expected.
   (I hope...)

I'm going to forward a preview of my code directly to Kenjiro, in order not to overload the list.

Cheers,

	fulvio

> -----Original Message-----
> From: owner-altq@csl.sony.co.jp [mailto:owner-altq@csl.sony.co.jp]On
> Behalf Of Kenjiro Cho
> Sent: Friday, August 13, 1999 5:57 AM
> To: altq@csl.sony.co.jp
> Subject: [altq 97] cbq update
> 
> 
> 
> I also tried to eliminate ifnow_ in struct ifdat as Fulvio suggested
> but I found it breaks the borrowing mechanism.
> So, I decided to leave ifnow_ as it is until we come up with a better
> way to handle borrowing.
>