Re: [PATCH 0/6] Add qdisc->ops->peek() support.
From: Jarek Poplawski <hidden>
Date: 2008-10-17 20:44:09
On Fri, Oct 17, 2008 at 04:12:03PM +0200, Patrick McHardy wrote: ...
Some general thoughts ... We've never had any systematic checks for useful and non-useful combination of qdiscs, which is causing a lot of these complications. Think of all the multiq work that was required to make it work properly with non-work-conserving qdiscs - while at the same time, using a non-work-conserving qdisc (which require a global view) defeats basically all of the benefits. So it would be really useful to come up with a systematic definition of valid combinations instead of trying handling lots of purely theoretical case that don't make sense. One more example - all the qdiscs implement ->drop(), yet its only needed by CBQ and it doesn't make any sense at all to use lets say HFSC as child of CBQ. About this specific case - yes, it would break compatibility for users using f.i. TBF as child of netem. But if you look at the netem_enqueue() function, it in fact assumes that the inner qdisc is a tfifo, so we'd be breaking an already broken case. We can of course be nice and warn about it for a few releases, but I believe there is some real potential for simplification that makes it worth it.
I'm not sure this is all right: at least until there is not too much problems with some code (like with requeuing). We probably should try before this official ways like feature-removal-schedule.txt, and/or maybe some CONFIG_XXX_DEPRECATED things. But I don't persist with this. BTW, I'm not sure if I'm expected to redo any patches in this thread. (Probably some things like this teql_peek() could be removed with ->requeue() killing.) Jarek P.