Subject: Re: [NET_SCHED 04/06]: Fix endless loops (part 2): "simple" qdiscs

From: Jarek Poplawski <[email-masked]>
Date: Mon, 27 Nov 2006 07:46:07 +0100

On Fri, Nov 24, 2006 at 02:07:08PM +0100, Patrick McHardy wrote:
> Jarek Poplawski wrote:
...
> > Probably it is as usual something with my eyes but
> > it seems cbq needs in cbq_delete or cbq_destroy_class
> > some treatment (about qdisc_destroy) similar to htb.
> 
> No, you're right about this one, CBQ needs a few further fixes:
> 
> - deactivating of active classes when grafting
> 
> - purging of queue/q.qlen adjustment when deleting an active class
> 
> - deactivating of active classes when q.qlen drops to zero in ->drop()
> 
> - purging of queue and deactivating of active leaf classes
>   when attaching a new child (presuming CBQ can only carry
>   packets in leaf classes, I'm not sure about this)
> 
> and something HTB should do is to turn intermediate classes
> into leaves again when their last child is deleted.
> 
> Are you interested in fixing this? :)

Oops! Sorry, I missed it again!

I've been frightened by the fame of cbq complexity
and I've simply never used it.
But after checking this points look rather trivial
so I've tried.

I'll soon send two patches proposals as separate
threads. The bad thing is I didn't have time to test 
or even learn how to test cbq, so I hope somebody
else would do it.

If any reworking will be needed or patching against
another version, let me know.

If you find it could be usable I'll be glad to do
more things like this. I'll also try to look closer
on cbq.

Regards,

Jarek P.