From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sonic313-11.consmr.mail.ne1.yahoo.com (sonic313-11.consmr.mail.ne1.yahoo.com [66.163.185.34]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 735C13BA8E for ; Mon, 18 Sep 2017 15:54:39 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1505764478; bh=N8ICEqxs/1VWnk8mzNsRbRK8aYsrO0wSrzk0G6z/sN0=; h=Date:From:To:In-Reply-To:References:Subject:From:Subject; b=rgYTMeW5IH/vEl1AiVk8TaEleAkiTXZD5WescA4q6DqZTGZMDt/U76ds0npsEvhTqsyfGoVY1z7ian8fT5A1HY7rOOowyiQYpB6nVBrHlKBJTfFm5cxnsvUEvW9jRF9CP35abwrNJbau3WtIok+km8ChWyJwF7s0LMBiWi3hURgo+qw/v1pLq/DB/wHXwccNvXhD7p6gDrvaKwQrcKDuJ+gcaKtQNnvRL3Ka5a3QKEc7D9pgY7tX+TRJITsZYJpu4U+xqZastvyIViI7YqUhzX3MbCJnZ8pAgAkxnU3DIrlAvQcpWNYdIRKg5DRYGDFGVYOi2tnV1haX9fY97nB6Ag== X-YMail-OSG: TgtoCSgVM1nhp8gKa0Le4SXOun81iB2LTZZ_L7Wc.1YaPSxseb4dLP2wjrRrfg8 0pVe1W88_0gPKc3GpCf8z73r83H2xUca5UAny2evdbX6p4CJMjGKs7r9bzvJifRKwIYoT35tV1C_ YoWcuCAw1A8G7QcAejLGoVU43nyh6u8mDiP_DAveaKHk1.Tw4JLMvJpkRm6fi6l9ypqNdE6sQmxk bFdqbyNwf.za4tjTbJNJyYkWOdHo9iQCRwT3OkincQOW2Hs6Q4s9ZAzkSuiiVdzkR9Id.ccNMOb5 ntLd203i7z8Ir0Pj9tcR8vo.yzlpzpLMjSEMhytUmEOHnDGNIwh2ljiGOZRpWVoGqYdqb3bnbLa5 FVOz0_8DlsBdNLa0mVM9HbwsnnJ5Eqqh7Rmp80gEgYOu08mKrfmJzNTCw6pYe1RSLAwtWhO9EsM7 OxJHZ9Cnn85mEFbDPdbnyIEYAIec6qqa4H.kAU799mRfPN7canmIY9jt9l_I0ir4RkqWENbMybvQ - Received: from sonic.gate.mail.ne1.yahoo.com by sonic313.consmr.mail.ne1.yahoo.com with HTTP; Mon, 18 Sep 2017 19:54:38 +0000 Date: Mon, 18 Sep 2017 19:54:24 +0000 (UTC) From: George Amanakis To: cake@lists.bufferbloat.net Message-ID: <703843540.1914005.1505764464591@mail.yahoo.com> In-Reply-To: References: Subject: Re: Latest cobalt updates MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_1914004_260165742.1505764464590" X-Mailer: WebService/1.1.10521 YMailNorrin Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.109 Safari/537.36 X-List-Received-Date: Mon, 18 Sep 2017 19:54:39 -0000 ------=_Part_1914004_260165742.1505764464590 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable To answer my own question: I think there is a reason for not doing so. If c= ake_enqueue() gets called there is a packet we need to dequeue later on. So= it wouldn't be wise to schedule the watchdog blindly at "now+q->tins[i].cp= arams.target" even though the scheduler's queue is still empty at that poin= t.=C2=A0 =20 >On Sunday, September 17, 2017, 10:34:31 AM EDT, George Amanakis wrote:=20 >Dear Jonathan, >I am looking/testing the latest cobalt updates.Most of them make sense.=20 >I have a question though. >At the end of cake_dequeue() you schedule the watchdog at=20 >"now+q->tins[i].cparams.target" if "!sch->q.qlen". This seems very=20 >reasonable. Instead in the beginning of cake_enqueue() you do: > > 916=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 if (!sch->q.qlen) { > 917=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= if (q->time_next_packet < now) { > 918=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 q->time_next_packet =3D no= w; > 919=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= } else if (q->time_next_packet > now) { > 920=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sch->qstats.overlimits++; > 921 #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0) > 922 codel_watchdog_schedule_ns(&q->watchdog, q->time_next_packet, true); > 923 #else > 924 qdisc_watchdog_schedule_ns(&q->watchdog, q->time_next_packet); > 925 #endif > 926=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= } > 927=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 } > 928=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } > >Is there any reason why you haven't scheduled the watchdog at=20 >"now+q->tins[i].cparams.target" like in cake_dequeue()? > >Thank you, >George ------=_Part_1914004_260165742.1505764464590 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
To answer my own question: I think th= ere is a reason for not doing so. If cake_enqueue() gets called there is a = packet we need to dequeue later on. So it wouldn't be wise to schedule the = watchdog blindly at "now+q->tins[i].cparams.target" even though the sche= duler's queue is still empty at that point. 


>On Sunday= , September 17, 2017, 10:34:31 AM EDT, George Amanakis <g_amanakis@yahoo= .com> wrote:
>Dear Jonathan,
>I am looking/testing the late= st cobalt updates.Most of them make sense.
>I have a question though= .
>At the end of cake_dequeue() you schedule the watchdog at
>= "now+q->tins[i].cparams.target" if "!sch->q.qlen". This seems very >reasonable. Instead in the beginning of cake_enqueue() you do:
>= ;
> 916          &n= bsp;      if (!sch->q.qlen) {
> 917 =             &nb= sp;           if (q->t= ime_next_packet < now) {
> 918      =             &nb= sp;            =   q->time_next_packet =3D now;
> 919    &= nbsp;           &nbs= p;        } else if (q->time_next_pac= ket > now) {
> 920        =             &nb= sp;            sch-&= gt;qstats.overlimits++;
> 921 #if LINUX_VERSION_CODE < KERNEL_VERS= ION(4, 8, 0)
> 922 codel_watchdog_schedule_ns(&q->watchdog, q-= >time_next_packet, true);
> 923 #else
> 924 qdisc_watchdog_s= chedule_ns(&q->watchdog, q->time_next_packet);
> 925 #endif=
> 926          &nb= sp;            =   }
> 927         &= nbsp;       }
> 928   &n= bsp;     }
>
>Is there any reason why you h= aven't scheduled the watchdog at
>"now+q->tins[i].cparams.target"= like in cake_dequeue()?
>
>Thank you,
>George

------=_Part_1914004_260165742.1505764464590--