From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-x22e.google.com (mail-pf0-x22e.google.com [IPv6:2607:f8b0:400e:c00::22e]) (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 2ED6B3BA8E for ; Wed, 25 Apr 2018 10:52:19 -0400 (EDT) Received: by mail-pf0-x22e.google.com with SMTP id j11so15430628pff.10 for ; Wed, 25 Apr 2018 07:52:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=KDtTiBsoXwFIl69GnNN1qnrNpyjoZ/kibTFORSMnJNQ=; b=IrjHW47/ojyhmcxz2qEFxQqa6tuoGmiUNjxtpYHFe6akPh8c2J8UxNp8L82Yseiu6G kMsnC6Zp8C+w9mkYAEnndDZnTKHcbkYde8bfnM5x8X+dqF08eqYGdOJ9/0YGSxfFfprb 59DKlgSRzneYaVEK5cKt+Zj9V2Q6jE6wfDTJwiFWfI25aw/GRPJlnYJCOhkiG3Wnrfjl Fv7l9xy/r53t4FylqIaPwvGeiJgz+PESWVrByX9li2lUNVjWOFi2Sf4JvErpCkL7WKYN jNw8SlvASuxRMUzwMPPIwt8JOEFjrPTqm5ZPU2VQH7yMbbsVE+3qiSW/O6scrTXYK4om NmyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=KDtTiBsoXwFIl69GnNN1qnrNpyjoZ/kibTFORSMnJNQ=; b=ndLYyKOlG3yqRMUUCzRVJRsArXqcDNyGcCVjQimfGYdPPNKBjCgNfe3Dl70o+8riv3 hOV/T/S6GxtEcT++ZVfSw2OHBhp+LSvZBTol1d11jGbxb5xd8ja5Z+UGKZ9gxmyAt2Nb jW74VBOW6QA0sc4oz0PAN5U80Lw7GRTZEIQ2h7ZRIvWSfSKtk0vNGOycb6S1NF7Z67Fj dGcItEzsnGZgSVBvNAi0T0rpPAmBSON3aC933mV5OUmYX/3vt5NSUfXarHZtRV4o6qHO T1so9tA+HMjsJnhdgdAmZvr/yGc68w3vRL2JBK6seCJmFnrar5QS+rclPlAPsAWqoUMb Aljg== X-Gm-Message-State: ALQs6tCTyP4AKsAOFO1EXI40QO6cdlKQxr33ZR5ihBJH/pSXsY7huvn4 CkiO2pL/kgWq4KBMQmLCikU= X-Google-Smtp-Source: AIpwx4/FpImWwxH/+5g3uAcEKztKfxXLCpt/yzs1/lsfzgAUHwS4RfISoXj1dSXbIJAxZuajFuDFiA== X-Received: by 10.99.45.70 with SMTP id t67mr23772584pgt.439.1524667938440; Wed, 25 Apr 2018 07:52:18 -0700 (PDT) Received: from [10.1.104.95] ([207.198.105.19]) by smtp.gmail.com with ESMTPSA id a4sm43282794pfj.107.2018.04.25.07.52.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 25 Apr 2018 07:52:17 -0700 (PDT) To: =?UTF-8?Q?Toke_H=c3=b8iland-J=c3=b8rgensen?= , netdev@vger.kernel.org Cc: cake@lists.bufferbloat.net, Dave Taht References: <20180425134249.21300-1-toke@toke.dk> From: Eric Dumazet Message-ID: Date: Wed, 25 Apr 2018 07:52:15 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <20180425134249.21300-1-toke@toke.dk> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Subject: Re: [Cake] [PATCH net-next v3] Add Common Applications Kept Enhanced (cake) qdisc 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: Wed, 25 Apr 2018 14:52:19 -0000 On 04/25/2018 06:42 AM, Toke Høiland-Jørgensen wrote: > sch_cake targets the home router use case and is intended to squeeze the > most bandwidth and latency out of even the slowest ISP links and routers, > while presenting an API simple enough that even an ISP can configure it. > * Support for ack filtering. Oh my god. Cake became a monster. syzkaller will be very happy to trigger all kind of bugs in it. Lack of any pskb_may_pull() is really concerning. How ack filter deals with reorders ? Also the forced GSO segmentation looks wrong to me. This kills xmit_more gain we have when GSO is performed after qdisc dequeue before hitting device. This should be driven by a parameter really, some threshold on the skb size. What performance number do you get on a 10Gbit NIC for example ? Also, how ack filter can suppress packets after skb_gso_segment() ? + segs = skb_gso_segment(skb, features & ~NETIF_F_GSO_MASK); + if (IS_ERR_OR_NULL(segs)) + return qdisc_drop(skb, sch, to_free); + + while (segs) { + nskb = segs->next; + segs->next = NULL; + qdisc_skb_cb(segs)->pkt_len = segs->len; + cobalt_set_enqueue_time(segs, now); + get_cobalt_cb(segs)->adjusted_len = cake_overhead(q, + segs); + flow_queue_add(flow, segs); + + if (q->ack_filter) + ack = cake_ack_filter(q, flow); + All the following must be dead code, right ??? + if (ack) { + b->ack_drops++; + sch->qstats.drops++; + b->bytes += ack->len; + slen += segs->len - ack->len; + q->buffer_used += segs->truesize - + ack->truesize; + if (q->rate_flags & CAKE_FLAG_INGRESS) + cake_advance_shaper(q, b, ack, + now, true); + + qdisc_tree_reduce_backlog(sch, 1, + qdisc_pkt_len(ack)); + consume_skb(ack); + } else {