From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrick McHardy Subject: Re: [PATCH] pkt_sched: sch_netem: Limit packet re-ordering functionality to tfifo qdisc. Date: Wed, 22 Oct 2008 17:57:57 +0200 Message-ID: <48FF4D85.7050700@trash.net> References: <20081017130333.GA8297@ff.dom.local> <48F89D33.9090809@trash.net> <20081017201210.GA2527@ami.dom.local> <20081021.163605.57275028.davem@davemloft.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Cc: jarkao2@gmail.com, netdev@vger.kernel.org, herbert@gondor.apana.org.au, shemminger@vyatta.com To: David Miller Return-path: Received: from stinky.trash.net ([213.144.137.162]:55849 "EHLO stinky.trash.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752211AbYJVP6A (ORCPT ); Wed, 22 Oct 2008 11:58:00 -0400 In-Reply-To: <20081021.163605.57275028.davem@davemloft.net> Sender: netdev-owner@vger.kernel.org List-ID: David Miller wrote: > From: Jarek Poplawski > Date: Fri, 17 Oct 2008 22:12:10 +0200 > >> 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 > > 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 ->requeu > sch_netem is just a black box, like any other packet scheduler node in > the tree, and so it can internally do the reordering with a self managed > packet list or similar. All of this can be hidden inside of it's ->dequeue() > with some pkt_sch watchdog timer that fires to prevent stale packets sitting > in the reorder queue forever. > > Anyways, just and idea and RFC, just like this patch ;-) >