Re: [PATCH] pkt_sched: sch_netem: Limit packet re-ordering functionality to tfifo qdisc.
From: Patrick McHardy <hidden>
Date: 2008-10-22 16:00:08
[Damn hotkeys for sending incomplete mails :)] David Miller wrote:
From: Jarek Poplawski <redacted> Date: Fri, 17 Oct 2008 22:12:10 +0200quoted
pkt_sched: sch_netem: Limit packet re-ordering functionality to tfifo qdisc. After introducing qdisc->ops->peek() method the only remaining user of qdisc->ops->requeue() is netem_enqueue() using this for packet re-ordering. According to Patrick McHardy: "a lot of the functionality of netem requires the inner tfifo anyways and rate-limiting is usually done on top of netem. So I would suggest so either hard-wire the tfifo qdisc or at least make the assumption that inner qdiscs are work- conserving." This patch tries the former. Signed-off-by: Jarek Poplawski <redacted>This is an interesting patch. But the thing that strikes me is this: Why don't we just let sch_netem do the reordering inside of itself entirely and just get rid of all of this ->requeue() business?
I fully agree, keeping all the ->requeue crap around just for this cornercase doesn't seem like a good decision. Most of the ->requeue functions are completely inconsistent in their behaviour anyways: some undo ->enqueue state changes (which is obviously broken for netem), some don't, some redo checks from ->enqueue (necessary for netem), some don't (TBF), ...