From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.taht.net (mail.taht.net [176.58.107.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 9B64F3B2A4 for ; Sun, 28 Jul 2019 23:43:48 -0400 (EDT) Received: from nemesis.taht.net (unknown [172.58.27.208]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.taht.net (Postfix) with ESMTPSA id EA927221EC; Mon, 29 Jul 2019 03:43:46 +0000 (UTC) From: Dave Taht To: ecn-sane@lists.bufferbloat.net, bloat@lists.bufferbloat.bt Date: Sun, 28 Jul 2019 20:43:30 -0700 Message-ID: <87v9vlfqu5.fsf@nemesis.taht.net> MIME-Version: 1.0 Content-Type: text/plain Subject: [Ecn-sane] fq_codel_fast with SCE and GSO/GRO splitting X-BeenThere: ecn-sane@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Discussion of explicit congestion notification's impact on the Internet List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Jul 2019 03:43:48 -0000 I finished working up today my fork of fq_codel with both basic SCE support and GSO/GRO splitting, that can be compiled easily out of tree for a few more modern kernels (tested with 4.18) I'm a little stuck in that I haven't been able to convince tc-adv to configure it out of the same q_fq_codel.c that fq_codel uses (the API is exactly the same, except that ce_threshold is now sce_threshold). Anybody? I just figured i'd change the .id field. Still poking.... The fq_codel_fast project started because I wanted to balance my karma after all the cpu cake ate up. I'd originally intended to simplify and speed it up, then attempt to make a multicore shaper out of it... but the SCE thing happened. I'd still like to do that at some point, but, anyway: * Out of tree build that doesn't have a lot of backport code yet * Hard coded 1024 queues - so far nobody's needed more * NO tc filter support - can't see a reason for it * All the useless stats ripped out * Bulk (on overload) dropper made closer to O(1) * Bulk dropper feeds back into the codel count * A mild revision to codel * co-exists with fq_codel * GSO/GRO support for ce_threshold > 0. Set it to a lot if you want to disable SCE. Set it to 0 for hopefully sped up normal fq_codel behavior. I'm going to rip out packet limits as well in favor of a pure memory limit. I presently do not see a reason for a SCE ramp function, as I don't intend to produce a configurable single or dual queue version. If you want less or more queues, just recompile..... I would like to measure the impact of the cpu scheduler on a wider variety of low end hardware and see just how low the sce_threshold can go, as well as how "bulky" reads off the rx ring currently are... ...after I figure out how to configure the darn thing and nail at least one remaining bug. Get it at: https://github.com/dtaht/fq_codel_fast Patches gladly accepted!