From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.ss.pku.edu.cn (unknown [124.207.24.138]) by huchra.bufferbloat.net (Postfix) with ESMTP id 64D44200131 for ; Tue, 10 Jul 2012 06:28:32 -0700 (PDT) Received: from mail-vb0-f43.google.com (mail-vb0-f43.google.com [209.85.212.43]) (Authenticated sender: mlin@ss.pku.edu.cn) by mail.ss.pku.edu.cn (Postfix) with ESMTPA id 1B396DB97C for ; Tue, 10 Jul 2012 21:28:24 +0800 (CST) Received: by vbbfq11 with SMTP id fq11so15898733vbb.16 for ; Tue, 10 Jul 2012 06:28:21 -0700 (PDT) MIME-Version: 1.0 Received: by 10.52.173.39 with SMTP id bh7mr17244717vdc.101.1341926901610; Tue, 10 Jul 2012 06:28:21 -0700 (PDT) Received: by 10.52.158.100 with HTTP; Tue, 10 Jul 2012 06:28:21 -0700 (PDT) In-Reply-To: <1341845722.3265.3065.camel@edumazet-glaptop> References: <1340945457.29822.7.camel@edumazet-glaptop> <1341396687.2583.1757.camel@edumazet-glaptop> <20120709.000834.1182150057463599677.davem@davemloft.net> <1341845722.3265.3065.camel@edumazet-glaptop> Date: Tue, 10 Jul 2012 21:28:21 +0800 Message-ID: From: Lin Ming To: Eric Dumazet Content-Type: text/plain; charset=ISO-8859-1 X-Mailman-Approved-At: Tue, 10 Jul 2012 10:39:38 -0700 Cc: nanditad@google.com, netdev@vger.kernel.org, mattmathis@google.com, codel@lists.bufferbloat.net, ycheng@google.com, ncardwell@google.com, David Miller Subject: Re: [Codel] [RFC PATCH] tcp: limit data skbs in qdisc layer X-BeenThere: codel@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: CoDel AQM discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jul 2012 13:28:34 -0000 On Mon, Jul 9, 2012 at 10:55 PM, Eric Dumazet wrote: > On Mon, 2012-07-09 at 00:08 -0700, David Miller wrote: > >> I'm suspicious and anticipate that 10G will need more queueing than >> you are able to get away with tg3 at 1G speeds. But it is an exciting >> idea nonetheless :-) > > There is a fundamental problem calling any xmit function from skb > destructor. > > skb destructor can be called while qdisc lock is taken, so we can > deadlock trying to reacquire it. > > One such path is the dev_deactivate_queue() -> qdisc_reset() -> > qdisc_reset_queue(), but also any dropped skbs in qdisc. > > So I should only do this stuff from a separate context, for example a > tasklet or timer. > > Alternative would be to use dev_kfree_skb_irq() for all dropped skbs in > qdisc layer. Hi Eric, Maybe a bit off topic ... Could you share how to test qdisc related change? Assume I'm testing qdisc performance, for example, codel qdisc, then how to setup the test environment? Do you use some network simulator, for example, using the special netem qdisc to simulate slow network/packet loss/network delay, etc? Thanks, Lin Ming