From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mail.toke.dk; dkim=pass header.d=gmx.de header.i=moeller0@gmx.de header.a=rsa-sha256 header.s=s31663417 header.b=hJxNKvfS; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=gmx.de policy.dmarc=quarantine Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by mail.toke.dk (Postfix) with ESMTPS id 1B1FE13710B5 for ; Tue, 21 Jul 2026 09:08:53 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1784617732; x=1785222532; i=moeller0@gmx.de; bh=ljvTla/Ycq6lihhRgFFPRDBQ1fRRSaHs1msuPcZBr5Y=; h=X-UI-Sender-Class:Content-Type:Mime-Version:Subject:From: In-Reply-To:Date:Cc:Content-Transfer-Encoding:Message-Id: References:To:cc:content-transfer-encoding:content-type:date:from: message-id:mime-version:reply-to:subject:to; b=hJxNKvfS4AmTdUEXJmtXml5HnZELBc2OeDARUbyWYZRVMvpdU8a+oozxHhbZXR2e RDcpBs4XVia6U4VdW3+uTjJSe5yZhqnGjaA+atvqDQOfVkw7BZcpF7Ij0X9hu75fX g8RvOB+ZI5/unEBpag/gnSybewzAJk9hlEndMQCEMUdkA81E/EoNG2yUkEki7MFj8 outcSDIbqW2wOunuKTjWBq6m5LyAfdIAI92w2eLh3pCZRJPGNxABfl7EmYuU/nr9q /1NaA91PJzTK9iw1HsYTgUDSp2Pw5GBecbor4ivyPMvx5qabNeyftSFNR78aMBqUy ioqI/8/h77j4P/e4ww== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from client.hidden.invalid by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MQe5u-1wOTju34YY-00Os9U; Tue, 21 Jul 2026 09:08:52 +0200 Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3864.600.51.1.1\)) From: Sebastian Moeller In-Reply-To: Date: Tue, 21 Jul 2026 09:08:42 +0200 Cc: cake@lists.bufferbloat.net Content-Transfer-Encoding: quoted-printable Message-Id: <8C04C704-AA0E-44AB-84D1-DF32B3FBF7EE@gmx.de> References: <178461405980.1649.1968000986901190552@gauss> To: thejoff@gmail.com X-Mailer: Apple Mail (2.3864.600.51.1.1) X-Provags-ID: V03:K1:Je0uEHKCPcdnwl0FSGg/4IkWFmJJFTpatY7QBpArhTatbCT41a0 iTSy/GQq2kQtDWD5wWwNSGSbaAkRagq/I8NT29YF6Pn9HRXkuellfE8ODEW9KISyEYfNQvN ODuhO1ln66TkUG4pzlbcz3JL6Li+G3R84OA6/aP0uul8VmMzFPEdpqTUr2dUNzHSw68rgzz Lg8kE4L0yyxtGBCINaOAw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:OH6U/jY57HI=;0eUzsrDp+wQV1Ot26C9jKTztS8V 6Xc09Bo9UizPRg9rtdHePi2sPBEACWP4LPGFnlCC2fwxGr1vb08CGqKAf4Hc3DcaD54R+BUrS XHcIjvtp4Jmtv8NcVroWNSvGe5c9ZYnLYnB361+FfSpRm6oI7zK5KCtE1ebqHKnkDEAbWIt06 IC8YW55+/GsBPXAjAFsb0i4PQvU7WXqR523uf9S7N17ymu/a1ZeJF6UZZhrj8hPOB8I1onpz3 AMxMx77yMJviMYxQXAHiITewWTUvqOt2SV5eoP2KE0JxoPcmaEHzoso1YN1mJpydu3d0ve7fK fS+W2holLNW/3D3FCGUmVLK4EWmmuTJ9RkLZKWTZbAg9xEsnZuIv4pl0AwvvKMEylD+YZBN+D oDYOQPLkeU130slvFXGWY/++z1L042HGOkCyDs2eBjoXtpiIMQrInVZZ8OIvL7J/ajPON3V5n JyU6iqdsEHEofIIWXsdLzFMuLDRzWo91VmpZnoLIiqAHkSY6V+mZJJ7q8OENX27WsfTPxa2AM PATvrOQtaG/9/lKPsvduZnHQLNzhf/BMdMcn0RseIglqDUiKORey2tkvUTk0e/N9NpWIascFJ H0VOSzbfl0wUmAMHaGsW/rrG+AygfRbc+6whNZdFyjcgwXi0D7MkXv+irfAwnmXoUUT1C/yxt Ials+cv3yt3uO7rnv2MMMM8fc5ABRIB1cskj06ck03TnF8jt3+D941GvgvNw3DcttQjIfDEL9 WQy/+05oGDXtfDzYPEVfvtR24sfTiwtaVDmYNs0Jwkfn9tkE2dM/ZL8W/jGcelz6OmEbYEs51 9Ae5N34ZoCxcV9Nka3bB4zNRTRp0TE/pwaEd2ZbHqSAJ3kRKFlKCIk65Yy1vE6xsVTC9BoCXQ N43Q0gNdY/uV+tB273Tu4yiWzUpsMwktgqdIKu2nOUEhCJqDWQ1tzcE3eYqyN/xmla/akr0kr yaiWjRxfTe//s4v8/kE+R40K0vAMpQMkUYaqmu7ZzZg75yisTt1TBf1C4EBou0z5ozIL+2tlU QPR9JpAA1a0xesEbyb4NpUC3bhpNo3hEye9q2N0nuaEOZBJwx8i48FwKE6Dh5FGVtXuIC99G8 aGXNUmmE7B1BRyTkyQ/Uxds+eR5JeSqmG/sjt3Nqr5iEMMopXMXmi9U7nr2PFAiQ0JYu5tzgO xCvWtPSRSj4eyAMc+luKiQXiVeJsZrMSRs07WqOdoAYQL2NCa9GY8FS1yqf/51R2o89ii5uqc oSVpX2NZYik6+VAecPIqlskcbhz9giOaTFvfpdM/h63gW0DzRhxVnkOUguO8UO1S1MqgRFDU4 EiMmIvSXPuPVKOYwt72T6VTbcTPo0hcWK8u5sqWsFA/etewBbnT30Isjq5xXoz0AgnPimmWSh fO7K0Jwpgwi4kQqvczV2oAbC3LoWB1TVwWo4PtgWEO6w2kEadilqledHvXxBaKIY9eVemRSli 1pVrHZYyQ9KPFLu4jMhPCR4HeI458RRaRiZ/SrpyZiGuUtQ0qDU/JKZFrF9RBJOuoAGXLBN6p 4qLZ8340+ySjDb2g+LTLVB+1ayPo/y/xGu8YwvZXwYSAQVsrlWufjggvYno17J1Z1SP4/ygo7 6bd2GK8RVlfbPi9yyQq0ADlk4oVaGGin4mPiurWN2iG6Z3mPT3Y3uYF3JLuKz9L3t76CP2Ip0 VfSUh76khYcdb3ug6zfY8bK3LmLDqu5ZVxOS+kbc7YgPTrgMK3AW7vyc182v8su5cWpU0SMsM XXr0qO/o5vhD0g5JIMYssG3T1CVahQP4vsSUNo+Dj0nXxbT9D/o7f14ASPO38qgmynHFbmCRt eq8rBG8PY9XnhUVAdNJysEuzwMZJu1wn8bTGqylcp8xtJkltOxH13cUE2SFueJxy54px8dVZA RWYUO0kQ3uf4pu8tK0FxQAUqstkb4dhg6OrOccEkuE9sfpUF+CtpWoqxM7axvNMqsS+v4laop 06bcrI2f9UTa3vpW/qo1FZziff/EbZ8fSP2F9Ix5A2RCd2D/NVO3wddllWv2bj9MuRz35WlgT 6SO3YboiaRXMQZeVwOJEUPRmc6eGqqVu6yR8W+taTN7S8ZR9Hp4lkQrrfL8zh4UNmj8SF3YFX O1U3X1i0CX/ibpu59XAVIzyG3Pj9FZGzdthDw637dF28fHA2Mmzo/Qu2gL3Wpsqie7l7pBlWl DUKirSevT/bB4xf9vthpx1DXB8mEnLGr21+eUei9QFQ7xIElBkJ67ebgNG6ubmpT9yVHSSYKp vIq9P3tva1KIbIjI2bHaYEF2hvYvRssgRFj5fEeGdN9tUsNDn5PWBaNFjgmAfGiSs/FAGErKz 4I40d92Bc1kJVB6EoHnM87te6aCrUB05RW7AaU4yvfgObCZ63yyjBGAA8MbshK1TYw+HEmfbs Eukb6O0LEww4gD/+DneFTGYzVsnG9vkHOjSvgBSkVOM/mWe7eUkWNrzFfuBPq4A8Kvlt7wnhD prKoYdGnx+vX/oaMV+7gKZWvy6DXnuRY9j2eTNb4WDFnM1INIm4Yp8aenMsA97IkOSnk4qpnz 4+cGd5SUCmb/qrepCLSdag9nW2zB92l2aPBAjQK7mYhtoXBjsv5tRfeR4Tt0jUG8XoyxCSgQQ 0pOhrmA+prx9MZF3+3zDramyR4iMEz7i6UfUVVA91OPpJJpM7vLohF0GsgEx9cp9LQhizsovJ H4fgwlRI5UY1Fa6Vo7vsnMiWrxcmWXUkks8GiMlciqo8s9ckrbShQiha+Q7oykJ9xbZW3uXtq jOHL8ZpJZ8csQ38hJq6thHRTgeVGbSK9uM1h41MAEbIN8pp1B1ZRbPT5qZAQnW6Vkzwia37u6 L2PSsPQOOFf4JLHo1heWAwzp5d6reLGufAWaW/uXvRiDCR+IGoXztYQbcNEpqQFET+sj/eI3X oV5Jb4P/XeZtoF4H3vJnV2JzsbDGzMyBDuaHblrQHIIynDj4ZzaRke8UAHZ7xI1eYPBsBQxBF KJ/AW9aDjwDPBtqj3s5YctFIGVnufba+VvEvokLXyFxONIBTgkyyaq+qMgFDg8UAR5AUD+TiF yDIF0IY4Fhv+6ZxKrvkru8rGfARJoAb2uzdvZZ/K/qf/olebg7UnbBZeJLegS3lx7/1UEXHHp bAUFgngVXCGvzqTeHDv1Ox24+IOw8D19ZWPQHum5IXDvFYU22XeZv5hASwanv8UZ36Y4Dh5fC 7H+CRFbxru+L5/knNLKhc8JTVCVE125KhW8n0Do1blSH2ckWu9tf54H33kxm7eCX52iaPF9sa aknl4jcNhLuER9XeUYt23R6Mk+Pu0TNLBNEgGRAXqo8yJlpwbQ3DYJ7+EL0vUPhv3wiWFSZ8Y Edh7fdfY64t2ClbMNGNqPmIcgkxgnu2TNJHKaGNYG3zHqwTmUrwkSoO3SUGWoR3/98OmiL4fv pT7mZJXtkO35OmwPm4wB9bN9kuWX+SdD1cv5B3v0vjUqlAVgUh9SK2/tsoCUQYfjI81qEo3yb VhNcqsGYO7RykxljrJHvz1ER0LC9SggzrXWVvHrSOO3UjorhxbwAnRqGmO8YuEbaesL2Vz6bZ /OrygMEJGcA8PbbZcqcGu7UyNj62ukUsvWWQJY1lzV3jDRGJZwhDsEDA6KiOuQAnCwtKaIeR9 6G+uVkxeOKe8aGaPGCCczuY9m2Sy3Q8RtlpVOgBFr0U4MJg6o6oyhSprih8cp7iPSdn1HyVuk jqwzMAW2tFd6Sjhz3+10KmYZZcAn1GECIc7gBVGehfdKRW04ZlCtllrzGTJA/CqqEoKUDOk3h Nta3hWeluqBmwxuKfoQp3HaVgBOU/m2sUTyay64teIpcgvW228Trri/7u+NFRtFlJ0wh9l4Rb f4tJVh3lqvQjYIgfsXMtAk//CbW03yKdMfyHOA5RPnWVg6nD3o6OQSrWPvbX47kQdzBSpUwjK uFm7/MklNQ7IBYTBYGTip8lMTjyvRTwgczNUos/B0fqHHIpVZS0DlvPxoFwVA9XBGY+rGFTOR Y3yE1HzYUnI/Oo6YKs1gxe9+4XVtlCLNGpJcJvNMiMQ+x0UB9EwRsihqohaz2lJqUjA/ISuMG RqAMZWPY2BesiqKdM9BuFBnad/qlqUYTEjOgEGGZgeORQ6qhA36iThQVJVQneD2TIFTgWCacD yB0JcG/U2sszSGqFImd1+wdvakYUMwq2yU3DuoRL5x7p1teZ7jmF6jGDrTMsD6XDnTP6KTJ7t 5dsofgPMCwVZTtgsoNzaWEqZQJs4LWRQ2c8vhqKFzYngsUPMOAn4uQ2G4AzmQOmaH9yPmqBoG 4SUSBE+SMrrIo86WF7WdN86J6AnQdy2Htazm9R7FdZlLCMzpuE5uTL7Co8Ttz8npeoSJCpVk/ UfPxyI7HQ7EbqvIKcGH+UYbATqJXEDUlt4NZBN+t3+9JNK3TxFdZlgA3j8BOZKuC3FUWWJ2pE x8xP7T9FLXbZLobdQm/SPcdhWQTjeu+KHCHBZMiQ2p4z7mEiC8R8PTKN0XAf+DsMS1b6jVuek IHcOAgzr9Hv2EnVaatGgTgCLHc8uGLdgyKweBRQkuYkI/Zw8IHWU5YXh4bJ3/Pj86lj2UQTm4 jEB+/fRhCnlnyT6XVKNTb9Spn4CopRdd93ahYpTgtRM0L01KKjxc3zdxQ52TFywax662R/P7G hJFnhPODKAZag45TkivKOg5g4OZUXITvzlczvmZQ373/mRrpqaTbj0mX8uzGcGfgQZOD3VtTK N/7S9hUZ6x78PlSn8cHYlRPHmENVhkJNGIgRsrndFY3qtbgEL3/zExdo7OwefdLZtv/XxQBOg Op/BfTiBT44dNt/UeIlO260tGZvVk0NWxriCRaVIZs3j0M9VtOSoRTymMrlmfEII2RwNrYYBE aBp01t3GRMHfPRao+mW7CVaFH/XBwz23RsySodx1CzFBHGfN0RiKdJ0CVc7O9fSi8WYLpFg8Y eH11WKpmvRmzFwwCgqn98MxFK8EWdZ402M5gihofpoB2ZL3mAEPsxBgleJK6joBwrshmHwcXY 0Zaq+fCvtGsyczGcHlZTekImf4dPcXuAUrao9/p+hjk7flgMHSHhfQUyrtaXZ5pah4dYJqnL0 ykUBOYDRk6/FUCaeVdrvmq4geryvVl3MQsZ19kGPvsr1B6FtHA0iOrkbwGcbeQhJzmii08S+K lz9UAvGw5/1lNhRURgfgKTHji0vU6M/nlCt7f+XgJg99GWywPE4j+q//ZcFOoEa/xMBtKli9h QXEBuIScx81lHcMptTHsbL6AlJ68mbcJbUjDPeBI+KxBEWf65/gTr2e2uAkYwm7Bb5YNv0hRB nlFwCRotf/cDkBtK7CWtWaq2YIuAAcmb9Ikh9bx3RTq06rAmP9UDRIHbd3ssN9lpmSDnYb+jM aLBizI7lRvh2qFOfeKZ260ADl+0kYjXXOTdDnB1tQ8i0ywIoiDks1R8E72aTAFq1wtom6/t6f RFa9U3aOR186k90GQSmHha3ME3KrDPZZ+iR5/Jr1o+miuUvGr2h8vPuMQmMRgc+CKICT5JrcP pvt7/gKMgK0XuOJUOUmTPBulQPlAj+gvee6lTnsmPmhFGEn42LM8GeH5CNP6ahG0upWhX6UlR Iu8vl6uIn/IsMsXynu+LAJvCvkSc9MOlAbGPuxv06rXxqpnyYkAEdUDqPmSRuycRrZA+lMnHk b1heuLPugM5Utd1RmXEqq3FgNXMk+AgTt0PZKmzqneDH75Y5cQ1pbZtntfffspZ1/bPq+kVPt zuiI6oRV5milMHadkRBhC7h7nVG1JdYgKntzEvagCSrkdL92LXoYXqX21WgZnnmg/ehnLc7a8 hmqWcp3JC8acyNU+TUfsgBnRh1fJK0nlmavLPu7QhRdj0vslhT5hhFOaQaSPeB7rjZu15PaKo kIKpPThi+A4A407DOkAOcQF/quo37r9GgA== Message-ID-Hash: 66DDBLZ4ZJAECNEKFDWAZTBIZ6C3CD5Y X-Message-ID-Hash: 66DDBLZ4ZJAECNEKFDWAZTBIZ6C3CD5Y X-MailFrom: moeller0@gmx.de X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list Subject: [Cake] Re: Cake Digest, Vol 130, Issue 7 List-Id: Cake - FQ_codel the next generation Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Hi there, > On Jul 21, 2026, at 08:22, le berger des photons = wrote: >=20 > looking briefly at that it seems that cake is no longer properly = named. It > doesn't seem to me that it's a "piece of cake" if I, who've been > networking for 20 years, has to invest a lot of time to even have a = vague > idea of what you're talking about. As far as I am concerned was less about cake's implementation below the = hood and more about the ease of getting a modern competent = traffic-shaper, traffic-scheduler, and AQM combination into the hands of = end users in a way that made setting this up and configuring it a piece = of cake. >=20 > On Tue, Jul 21, 2026 at 8:07=E2=80=AFAM = wrote: >=20 >> Send Cake mailing list submissions to >> cake@lists.bufferbloat.net >>=20 >> To subscribe or unsubscribe via email, send a message with subject or >> body 'help' to >> cake-request@lists.bufferbloat.net >>=20 >> You can reach the person managing the list at >> cake-owner@lists.bufferbloat.net >>=20 >> When replying, please edit your Subject line so it is more specific >> than "Re: Contents of Cake digest..." >>=20 >> Today's Topics: >>=20 >> 1. Re: [PATCH net-next] net/sched: sch_cake: skip clearing unused = tins >> during rate adjustment >> (Toke H=C3=B8iland-J=C3=B8rgensen) >> 2. [PATCH net-next v2] net/sched: sch_cake: skip clearing unused = tins >> during rate adjustment >> (Jonas K=C3=B6ppeler) >>=20 >>=20 >> = ---------------------------------------------------------------------- >>=20 >> Message: 1 >> Date: Mon, 20 Jul 2026 22:30:09 +0200 >> From: Toke H=C3=B8iland-J=C3=B8rgensen >> Subject: [Cake] Re: [PATCH net-next] net/sched: sch_cake: skip >> clearing unused tins during rate adjustment >> To: Jonas K=C3=B6ppeler , Jamal Hadi Salim >> , Jiri Pirko , "David S. >> Miller" >> , Eric Dumazet , = Jakub >> Kicinski , Paolo Abeni , = Simon >> Horman >> Cc: cake@lists.bufferbloat.net, netdev@vger.kernel.org, >> linux-kernel@vger.kernel.org, Mike Pham = >> Message-ID: <2E1DC220-4CC0-4F46-A042-6B09535EC373@toke.dk> >> Content-Type: text/plain; charset=3Dutf-8 >>=20 >>=20 >>=20 >> On 18 July 2026 17.06.28 CEST, "Jonas K=C3=B6ppeler" = >> wrote: >>> On 7/17/26 10:31, Toke H=C3=B8iland-J=C3=B8rgensen wrote: >>>> Jonas K=C3=B6ppeler writes: >>>>=20 >>>>> When cake_configure_rates() is called from the dequeue path with >>>>> rate_adjust=3Dtrue, it only needs to update the rate parameters. = The >>>>> loop that clears the unused tins is both unnecessary and harmful = in >>>>> this path: >>>>>=20 >>>>> - cake_clear_tin() overwrites q->cur_tin and q->cur_flow, which = are >>>>> actively used by cake_dequeue(), corrupting the dequeue state. >>>>> - iterating over the unused tins and their internal queues to = purge >>>>> packets adds needless overhead to the hot path. >>>>>=20 >>>>> Skip the entire loop when rate_adjust is set, as neither >>>>> cake_clear_tin() nor the mtu_time update are needed when only the >>>>> rate changes. >>>>>=20 >>>>> Fixes: 15c2715a5264 ("net/sched: sch_cake: fixup cake_mq rate >> adjustment for diffserv config") >>>>> Signed-off-by: Jonas K=C3=B6ppeler >>>>> Tested-by: Mike Pham >>>>=20 >>>> Do you have any performance numbers to show the impact of this? >>> Yes, the table below shows results from a test setup using vng with >>> 2 network namespaces, with cake/cake_mq attached in one of them: >>>=20 >>> ns1 -> cake/cake_mq -> ns2 >>>=20 >>> - veth devices are configured with 8 rx/tx queues. >>> - cake/cake_mq is configured with a 2 Gbit rate limit. >>> - Running flent's rrul and tcp_nup tests with 32 TCP upstreams: >>>=20 >>> legend: qdisc mq =3D cake_mq; mode be =3D besteffort, ds3 =3D = diffserv3 >>> test nup =3D tcp_nup; base/load =3D idle/loaded RTT (ms); tput = =3D >> Mbit/s >>>=20 >>> = +---------------------+-------+------+------+-------+-------+---------+ >>> | kernel | qdisc | mode | test | base | load | = tput | >>> = +---------------------+-------+------+------+-------+-------+---------+ >>> | net-next | cake | be | rrul | 0.075 | 4.76 | = 1473.69 | >>> | net-next | cake | be | nup | 0.078 | 6.23 | = 1550.79 | >>> | net-next | cake | ds3 | rrul | 0.063 | 5.81 | = 1526.75 | >>> | net-next | cake | ds3 | nup | 0.046 | 6.09 | = 1761.45 | >>> = +---------------------+-------+------+------+-------+-------+---------+ >>> | net-next | mq | be | rrul | 0.810 | 11.78 | = 1469.67 | >>> | net-next | mq | be | nup | 0.637 | 85.71 | = 1243.15 | >>> | net-next | mq | ds3 | rrul | 0.397 | 15.28 | = 1770.06 | >>> | net-next | mq | ds3 | nup | 0.351 | 15.98 | = 1799.39 | >>> = +---------------------+-------+------+------+-------+-------+---------+ >>> | this patch | mq | be | rrul | 0.092 | 0.56 | = 1873.40 | >>> | this patch | mq | be | nup | 0.109 | 1.82 | = 1869.12 | >>> | this patch | mq | ds3 | rrul | 0.097 | 0.98 | = 1866.10 | >>> | this patch | mq | ds3 | nup | 0.101 | 0.51 | = 1861.79 | >>> = +---------------------+-------+------+------+-------+-------+---------+ >>> | before 15c2715a5264 | mq | be | rrul | 0.073 | 0.30 | = 1895.45 | >>> | before 15c2715a5264 | mq | be | nup | 0.076 | 0.49 | = 1905.57 | >>> | before 15c2715a5264 | mq | ds3 | rrul | 0.069 | 0.31 | = 1896.59 | >>> | before 15c2715a5264 | mq | ds3 | nup | 0.058 | 0.86 | = 1884.01 | >>> = +---------------------+-------+------+------+-------+-------+---------+ >>>=20 >>> Not only is p99 latency drastically reduced -- nearly matching >>> pre-15c2715a5264 results -- but on current upstream cake_mq, >>> throughput also increases as a cake mode uses more tins. This points >>> directly to cake_clear_tin() during reconfig as the cause, since it >>> clears (max_tins - cur_tins) tins each time. So the fewer tins the >>> current mode uses, the more get cleared on every reconfig. >>>=20 >>> Mike ran also some test on OpenWrt, on an IPQ8074A with 4 rx/tx >>> queues, and saw similar trends. cake_mq is configured with a 2.2 = Gbit >>> rate limit. >>>=20 >>> Unfortunately, we only have data for 128 TCP upstreams on net-next, >>> and 64 TCP upstreams for 'this patch'. >>>=20 >>> +---------------------+-------+------+------+---------+----------+ >>> | kernel | qdisc | mode | test | load | tput | >>> +---------------------+-------+------+------+---------+----------+ >>> | net-next | mq | be | nup | 468.50 | 50.90 | >>> | net-next | mq | ds3 | nup | 355.22 | 98.21 | >>> | net-next | mq | ds4 | nup | 268.28 | 255.84 | >>> | net-next | mq | ds8 | nup | 7.48 | 2023.66 | >>> +---------------------+-------+------+------+---------+----------+ >>> | this patch | mq | be | nup | 4.24 | 944.35 | >>> | this patch | mq | ds3 | nup | 4.27 | 937.75 | >>> | this patch | mq | ds4 | nup | 4.24 | 936.97 | >>> | this patch | mq | ds8 | nup | 4.32 | 927.89 | >>> +---------------------+-------+------+------+---------+----------+ >>>=20 >>> This again shows the same trend: throughput increases and latency >>> drops as cake_mq is configured with more tins. We're still looking >>> into why net-next+ds8 reaches close to 2 Gbit/s, while this patch >>> tops out around 928 Mbit/s. >>>=20 >>> That said, this patch doesn't solve every issue yet, but it does >>> remove the regression introduced by commit 15c2715a5264 >>> ("net/sched: sch_cake: fixup cake_mq rate adjustment for diffserv >>> config"). >>>=20 >>> We're continuing to look into further improvements. Let us know if >>> you'd like to see additional tests :) >>=20 >> Cool! Could you please respin the patch with this data in the commit >> message? >>=20 >> Doesn't have to be all of it, but some indication of the benefit = would be >> good to have on hand for future reference :) >>=20 >> -Toke >>=20 >> ------------------------------ >>=20 >> Message: 2 >> Date: Mon, 20 Jul 2026 23:14:52 +0200 >> From: Jonas K=C3=B6ppeler >> Subject: [Cake] [PATCH net-next v2] net/sched: sch_cake: skip = clearing >> unused tins during rate adjustment >> To: Toke H=C3=B8iland-J=C3=B8rgensen , Jamal Hadi Salim >> , Jiri Pirko , "David S. >> Miller" >> , Eric Dumazet , = Jakub >> Kicinski , Paolo Abeni , = Simon >> Horman >> Cc: , , >> , Jonas K=C3=B6ppeler >> , Mike Pham >> Message-ID: >> < >> 20260720-sch_cake-skip-clearing-tins-v2-1-e6a8b0275c73@tu-berlin.de> >> Content-Type: text/plain; charset=3D"utf-8" >>=20 >> When cake_configure_rates() is called from the dequeue path with >> rate_adjust=3Dtrue, it only needs to update the rate parameters. The >> loop that clears the unused tins is both unnecessary and harmful in >> this path: >>=20 >> - cake_clear_tin() overwrites q->cur_tin and q->cur_flow, which are >> actively used by cake_dequeue(), corrupting the dequeue state. >> - iterating over the unused tins and their internal queues to purge >> packets adds needless overhead to the hot path. >>=20 >> Skip the entire loop when rate_adjust is set, as neither >> cake_clear_tin() nor the mtu_time update are needed when only the >> rate changes. >>=20 >> The clearing loop runs on every rate adjustment from the dequeue = path, >> clearing (max_tins - cur_tins) tins each time, so the cost grows the >> fewer tins the configured mode actually uses. Testing cake_mq over = veth >> (8 rx/tx queues, 2 Gbit limit) with flent's [1] rrul and tcp_nup = tests and >> 32 TCP upstreams shows a large drop in loaded latency and a = throughput >> gain, restoring behaviour to pre-15c2715a5264 levels: >>=20 >> +------------+------+------+-------+-------+---------+ >> | kernel | mode | test | base | load | tput | >> | | | | (ms) | (ms) | (Mbit) | >> +------------+------+------+-------+-------+---------+ >> | net-next | be | rrul | 0.810 | 11.78 | 1469.67 | >> | net-next | be | nup | 0.637 | 85.71 | 1243.15 | >> | net-next | ds3 | rrul | 0.397 | 15.28 | 1770.06 | >> | net-next | ds3 | nup | 0.351 | 15.98 | 1799.39 | >> +------------+------+------+-------+-------+---------+ >> | patched | be | rrul | 0.092 | 0.56 | 1873.40 | >> | patched | be | nup | 0.109 | 1.82 | 1869.12 | >> | patched | ds3 | rrul | 0.097 | 0.98 | 1866.10 | >> | patched | ds3 | nup | 0.101 | 0.51 | 1861.79 | >> +------------+------+------+-------+-------+---------+ >>=20 >> The same trend holds on real hardware (IPQ8074A, 4 rx/tx queues, >> OpenWrt): in besteffort mode the tcp_nup loaded latency drops from >> ~470 ms to ~4 ms. >>=20 >> [1] https://flent.org >>=20 >> Fixes: 15c2715a5264 ("net/sched: sch_cake: fixup cake_mq rate = adjustment >> for diffserv config") >> Signed-off-by: Jonas K=C3=B6ppeler >> Tested-by: Mike Pham >> --- >> Changes in v2: >> - added performance data to commit message, no code changes >> - Link to v1: >> = https://patch.msgid.link/20260716-sch_cake-skip-clearing-tins-v1-1-d9787df= 20c28@tu-berlin.de >> --- >> net/sched/sch_cake.c | 8 +++++--- >> 1 file changed, 5 insertions(+), 3 deletions(-) >>=20 >> diff --git a/net/sched/sch_cake.c b/net/sched/sch_cake.c >> index f78f8e950776..845e1c017714 100644 >> --- a/net/sched/sch_cake.c >> +++ b/net/sched/sch_cake.c >> @@ -2609,9 +2609,11 @@ static void cake_configure_rates(struct Qdisc = *sch, >> u64 rate, bool rate_adjust) >> break; >> } >>=20 >> - for (c =3D qd->tin_cnt; c < CAKE_MAX_TINS; c++) { >> - cake_clear_tin(sch, c); >> - qd->tins[c].cparams.mtu_time =3D >> qd->tins[ft].cparams.mtu_time; >> + if (!rate_adjust) { >> + for (c =3D qd->tin_cnt; c < CAKE_MAX_TINS; c++) { >> + cake_clear_tin(sch, c); >> + qd->tins[c].cparams.mtu_time =3D >> qd->tins[ft].cparams.mtu_time; >> + } >> } >>=20 >> qd->rate_ns =3D qd->tins[ft].tin_rate_ns; >>=20 >> --- >> base-commit: f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e >> change-id: 20260716-sch_cake-skip-clearing-tins-856812586cde >>=20 >> Best regards, >> -- >> Jonas K=C3=B6ppeler >>=20 >>=20 >> ------------------------------ >>=20 >> Subject: Digest Footer >>=20 >> _______________________________________________ >> Cake mailing list -- cake@lists.bufferbloat.net >> To unsubscribe send an email to cake-leave@lists.bufferbloat.net >>=20 >>=20 >> ------------------------------ >>=20 >> End of Cake Digest, Vol 130, Issue 7 >> ************************************ >>=20 > _______________________________________________ > Cake mailing list -- cake@lists.bufferbloat.net > To unsubscribe send an email to cake-leave@lists.bufferbloat.net