From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qk0-x243.google.com (mail-qk0-x243.google.com [IPv6:2607:f8b0:400d:c09::243]) (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 136F23B2A4 for ; Thu, 26 Jul 2018 23:25:11 -0400 (EDT) Received: by mail-qk0-x243.google.com with SMTP id 126-v6so2449510qke.5 for ; Thu, 26 Jul 2018 20:25:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :content-transfer-encoding; bh=eVrCqlUQ/DSn4ZBD3q78Vsv8IHwzBJyjZnrO2FAu3ew=; b=ezPIQnGPAscm3ZJs0wb5poT6MrmjAHrgwctVcv+kGerZkdk5dHc6K2pRVNpx6niONk YLZegdoOfGSPki+y8Ca/ovE/qenhmVLHOYdIdlbwztZFc5XRVhuJ4WjYbn8rHL/2F1HF uVwfU1hfFn+1jhk+sOZBBd/N0CUltCUikBTilV8V6sb+Z/7pw9h5ko8ALERGsgsWeZhX cwpQRrR02sMIDILsEimIMyI0TEHRGg8hss4lZo4N88tNjFxmKiuHf7xic2O/ohFj7cv+ mtD9nMDpiE1k/Myf+Iga4rFv2EvD66qPxOOmt6C0KUOlwiY1rTZH02UimeATA0UtNEoa A0Gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:content-transfer-encoding; bh=eVrCqlUQ/DSn4ZBD3q78Vsv8IHwzBJyjZnrO2FAu3ew=; b=YDVGIWFOK1YqupfDVQihlP54I9lmMRemt5gYEUtOeMrq929yml/oW+6/Rc/18bB63H LtG6tpOv24EJMCGj7n9JFs4VjHGT427feJeT2Qmn3Pk510ewE05/i8GUNH0KT+Um5cQM C1WsfNyGDTtPENuvc54upCqxVeXLIQb5ve7JJ3aZat804scgL/wvjjv76Hs1loWxhSoE dbZB1lT9p4a7jNw6S+bETwxPwRGphAWRGMkeH8WhqpilVH7ggYqaT89q2LPsDh2RAD1z O+Rjs78l+wYWyMq1xcPkU4UU3nWMCI1fj3QrpChJ6h6RqXX/JUuJSfczLEzTKfneteOM 0mDA== X-Gm-Message-State: AOUpUlF36m74w+Yo490J/FhDDrGM6jgyDciUOeFqpVdR2ZWwMKLUz5SO 7flmcoJqsYtTou7vpwkW+9Zd89YZTGsgZIwXUzr+PA== X-Google-Smtp-Source: AAOMgpdcT8mDKwtKlihTaPOh5W0Xt7PWl+hJ2Z78uMovM2Ix/x/yMa50YxJppaiMgY5fv29/ilFI8BWvY4soN+NFyMo= X-Received: by 2002:a37:4d1:: with SMTP id 200-v6mr4114790qke.35.1532661910155; Thu, 26 Jul 2018 20:25:10 -0700 (PDT) MIME-Version: 1.0 References: <1532659510-17385-1-git-send-email-dave.taht@gmail.com> <1532659510-17385-2-git-send-email-dave.taht@gmail.com> In-Reply-To: <1532659510-17385-2-git-send-email-dave.taht@gmail.com> From: Dave Taht Date: Thu, 26 Jul 2018 20:24:58 -0700 Message-ID: To: Cake List Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: Re: [Cake] [PATCH net-next] sch_cake: Make gso-splitting configurable from userspace X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Jul 2018 03:25:11 -0000 I should have made that be an RFC. Ah, well. On Thu, Jul 26, 2018 at 7:45 PM Dave Taht wrote: > > This patch restores cake's deployed behavior at line rate to always > split gso, and makes gso splitting configurable from userspace. > > running cake unlimited (unshaped) at 1gigE, local traffic: > > no-split-gso bql limit: 131966 > split-gso bql limit: ~42392-45420 > > On this 4 stream test splitting gso apart results in halving the > observed interpacket latency at no loss in throughput. > > Summary of tcp_nup test run 'gso-split' (at 2018-07-26 16:03:51.824728): > > Ping (ms) ICMP : 0.83 0.81 ms 341 > TCP upload avg : 235.43 235.39 Mbits/s 301 > TCP upload sum : 941.71 941.56 Mbits/s 301 > TCP upload::1 : 235.45 235.43 Mbits/s 271 > TCP upload::2 : 235.45 235.41 Mbits/s 289 > TCP upload::3 : 235.40 235.40 Mbits/s 288 > TCP upload::4 : 235.41 235.40 Mbits/s 291 > > verses > > Summary of tcp_nup test run 'no-split-gso' (at 2018-07-26 16:37:23.563960= ): > > avg median # data pts > Ping (ms) ICMP : 1.67 1.73 ms 348 > TCP upload avg : 234.56 235.37 Mbits/s 301 > TCP upload sum : 938.24 941.49 Mbits/s 301 > TCP upload::1 : 234.55 235.38 Mbits/s 285 > TCP upload::2 : 234.57 235.37 Mbits/s 286 > TCP upload::3 : 234.58 235.37 Mbits/s 274 > TCP upload::4 : 234.54 235.42 Mbits/s 288 > --- > net/sched/sch_cake.c | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/net/sched/sch_cake.c b/net/sched/sch_cake.c > index 539c949..35fc725 100644 > --- a/net/sched/sch_cake.c > +++ b/net/sched/sch_cake.c > @@ -80,7 +80,6 @@ > #define CAKE_QUEUES (1024) > #define CAKE_FLOW_MASK 63 > #define CAKE_FLOW_NAT_FLAG 64 > -#define CAKE_SPLIT_GSO_THRESHOLD (125000000) /* 1Gbps */ > > /* struct cobalt_params - contains codel and blue parameters > * @interval: codel initial drop rate > @@ -2569,10 +2568,12 @@ static int cake_change(struct Qdisc *sch, struct = nlattr *opt, > if (tb[TCA_CAKE_MEMORY]) > q->buffer_config_limit =3D nla_get_u32(tb[TCA_CAKE_MEMORY= ]); > > - if (q->rate_bps && q->rate_bps <=3D CAKE_SPLIT_GSO_THRESHOLD) > - q->rate_flags |=3D CAKE_FLAG_SPLIT_GSO; > - else > - q->rate_flags &=3D ~CAKE_FLAG_SPLIT_GSO; > + if (tb[TCA_CAKE_SPLIT_GSO]) { > + if (!!nla_get_u32(tb[TCA_CAKE_SPLIT_GSO])) > + q->rate_flags |=3D CAKE_FLAG_SPLIT_GSO; > + else > + q->rate_flags &=3D ~CAKE_FLAG_SPLIT_GSO; > + } > > if (q->tins) { > sch_tree_lock(sch); > @@ -2608,7 +2609,7 @@ static int cake_init(struct Qdisc *sch, struct nlat= tr *opt, > q->target =3D 5000; /* 5ms: codel RFC argues > * for 5 to 10% of interval > */ > - > + q->rate_flags |=3D CAKE_FLAG_SPLIT_GSO; > q->cur_tin =3D 0; > q->cur_flow =3D 0; > > -- > 2.7.4 > --=20 Dave T=C3=A4ht CEO, TekLibre, LLC http://www.teklibre.com Tel: 1-669-226-2619