From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-f41.google.com (mail-wg0-f41.google.com [74.125.82.41]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority" (verified OK)) by huchra.bufferbloat.net (Postfix) with ESMTPS id 6C6062012AC for ; Sat, 5 May 2012 13:20:56 -0700 (PDT) Received: by wgbds1 with SMTP id ds1so2144983wgb.4 for ; Sat, 05 May 2012 13:20:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:from:to:cc:in-reply-to:references:content-type:date :message-id:mime-version:x-mailer:content-transfer-encoding; bh=ykPS+cOjE7ikDvtfLyOcjcvHiN/gFoEtAKAbqVxwsa4=; b=IADZTWq2HOdkxP4i75MEbXiTm2GwAQVfLBTT3yyMaaLP8Pt6US34h2eajEdB1edYPo 4UHLikfjtJcIRCXSkvi4W5MRNoaTG5qhw+Iyo9DntqGkrIlxAhW50YJYH9pNKN3roNI4 8L3M8357Ofuzod/Ia36awCOHn6o4bpScrixBVRzVc98Yzi1ie6gjHJ3nGWm9PHHpLneM iouiTwBiDqRkmtou2EfhIIVBYv2u07AO2bYxzGaL68QwAV11/KRmWNn65t1kBgJzsfWI 6Nm6CSQpumqA6fTT/FbZHQVwygsoof/ZU1KpP2YLQdyvLcbtPaCee7wK+FkUsyPyPzod qkyA== Received: by 10.180.92.130 with SMTP id cm2mr23133978wib.4.1336249254446; Sat, 05 May 2012 13:20:54 -0700 (PDT) Received: from [172.28.130.107] ([74.125.122.49]) by mx.google.com with ESMTPS id u9sm8470640wix.0.2012.05.05.13.20.52 (version=SSLv3 cipher=OTHER); Sat, 05 May 2012 13:20:53 -0700 (PDT) From: Eric Dumazet To: Dave Taht In-Reply-To: <1336229343.3752.516.camel@edumazet-glaptop> References: <1336217671-20384-1-git-send-email-dave.taht@bufferbloat.net> <1336218794.3752.508.camel@edumazet-glaptop> <1336229343.3752.516.camel@edumazet-glaptop> Content-Type: text/plain; charset="UTF-8" Date: Sat, 05 May 2012 22:20:51 +0200 Message-ID: <1336249251.3752.558.camel@edumazet-glaptop> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit Cc: codel@lists.bufferbloat.net, Dave =?ISO-8859-1?Q?T=E4ht?= Subject: Re: [Codel] [PATCH v5] pkt_sched: codel: Controlled Delay AQM 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: Sat, 05 May 2012 20:20:57 -0000 On Sat, 2012-05-05 at 16:49 +0200, Eric Dumazet wrote: > From: Dave Taht > > +static bool should_drop(struct sk_buff *skb, struct Qdisc *sch, ktime_t now) > +{ > + struct codel_sched_data *q = qdisc_priv(sch); > + ktime_t sojourn_time; > + bool drop; > + > + if (!skb) { > + q->first_above_time.tv64 = 0; > + return false; > + } > + sojourn_time = ktime_sub(now, get_enqueue_time(skb)); > + > + if (ktime_compare(sojourn_time, q->target) < 0 || > + sch->qstats.backlog < q->minbytes) { > + /* went below so we'll stay below for at least q->interval */ > + q->first_above_time.tv64 = 0; > + return false; > + } I believe we should allow the last packet to be sent even if sch->qstats.backlog >= q->minbytes Hmm... this means we should do the sch->qstats.backlog -= qdisc_pkt_len(skb); right after the calls to __skb_dequeue(&sch->q); (and not in the codel_drop() or at end of codel_dequeue())