From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) (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 2C9233B2A4 for ; Wed, 31 Aug 2022 12:40:31 -0400 (EDT) Received: by mail-wr1-x431.google.com with SMTP id c7so12364312wrp.11 for ; Wed, 31 Aug 2022 09:40:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc; bh=bUBMi1acHtMeDGGZvh1t1mjTfEq6faCqsrwiPN+cRk0=; b=ZEOZpDu7xj2KDttFLwLzWSKZ8jV3ZJSh8OBnIxqtFoNZd+MQlO1YJ0i5M62mWkCzKv Cpp23/siggy3iob/Om7ZG0BE4yS6PwI0cc9idi59AdHPyxkvvnVD9oFgcBDqbRvPOnEr u+Lcz3E288HIwKHWo65KabcTTPrX8f9Rp28Brpe6Ehzjjnt1fIfb0qWeEC2DtX/YHl1I A35qwx8RR05D2JuhaTi0AD7BUy5pQf6qOT/uK3GK+yogCnsNc79bjM/K0Drj/ZqWdrge ImTBnGDHF/IaOWe0RGXANZdqRlFXXpX+A6XjBQfzKxGIQH7tthqxA8XwVzA32blBzgb0 LcRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc; bh=bUBMi1acHtMeDGGZvh1t1mjTfEq6faCqsrwiPN+cRk0=; b=vxi9ewUidU3UzmxJ1X1+X+LImZI7wnVSql/YSOItn4wze95d/WF67ijTggCS3+7M2X P4OJPkoNi7w4r4EzdT2aIb4xEX0hoYYM4qpeevnwRUiiwGqmHvpEhNBCPH/LJ4pziF9Q AnMO41EQamKqPyNpMXJg2EODFHuJaRN4vmGQ25S4pM7M473kUPJjswVsE8ZCqpXk7vgU LFtgEY5NaGaNVIJ20m/yxA3Idc6AC5FZJs5LzZnzGymFhXx9x6lJOXzD89JSsAQcdi19 tfqE46m4a0HLM9p8NaqLa1PxN43jwSGhXsaEdEB+GbzEAolzm1PBVf4YAFi3z9MKz3Sd c8qA== X-Gm-Message-State: ACgBeo3dPT1+9V3CyQZp5JtIDDyMjoEmpYelJBh8yaedZrpixAtnTzO0 eBi22VVZaoTBQy9ALi2uS37mMNml9LwzbcRdCzPJqlOG X-Google-Smtp-Source: AA6agR5juRfFLmW4tIeo5yHvfh6iJU2ENOUufSBtKdXypL68uFGOC0RxbLf3CqMZ2/LeKM13VFHUxqpw/l0LAxb8uYE= X-Received: by 2002:a5d:4302:0:b0:225:5303:39e5 with SMTP id h2-20020a5d4302000000b00225530339e5mr12658153wrq.380.1661964030001; Wed, 31 Aug 2022 09:40:30 -0700 (PDT) MIME-Version: 1.0 References: <20220831092103.442868-1-toke@toke.dk> In-Reply-To: <20220831092103.442868-1-toke@toke.dk> From: Dave Taht Date: Wed, 31 Aug 2022 09:40:17 -0700 Message-ID: To: =?UTF-8?B?VG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2Vu?= , Cake List Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: Re: [Cake] [PATCH net] sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb 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, 31 Aug 2022 16:40:31 -0000 hmm. what did this break above it? just stats? or a mem leak? or? On Wed, Aug 31, 2022 at 2:25 AM Toke H=C3=B8iland-J=C3=B8rgensen via Cake wrote: > > When the GSO splitting feature of sch_cake is enabled, GSO superpackets > will be broken up and the resulting segments enqueued in place of the > original skb. In this case, CAKE calls consume_skb() on the original skb, > but still returns NET_XMIT_SUCCESS. This can confuse parent qdiscs into > assuming the original skb still exists, when it really has been freed. Fi= x > this by adding the __NET_XMIT_STOLEN flag to the return value in this cas= e. > > Fixes: 0c850344d388 ("sch_cake: Conditionally split GSO segments") > Signed-off-by: Toke H=C3=B8iland-J=C3=B8rgensen > --- > net/sched/sch_cake.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/net/sched/sch_cake.c b/net/sched/sch_cake.c > index a43a58a73d09..a04928082e4a 100644 > --- a/net/sched/sch_cake.c > +++ b/net/sched/sch_cake.c > @@ -1713,6 +1713,7 @@ static s32 cake_enqueue(struct sk_buff *skb, struct= Qdisc *sch, > } > idx--; > flow =3D &b->flows[idx]; > + ret =3D NET_XMIT_SUCCESS; > > /* ensure shaper state isn't stale */ > if (!b->tin_backlog) { > @@ -1771,6 +1772,7 @@ static s32 cake_enqueue(struct sk_buff *skb, struct= Qdisc *sch, > > qdisc_tree_reduce_backlog(sch, 1-numsegs, len-slen); > consume_skb(skb); > + ret |=3D __NET_XMIT_STOLEN; > } else { > /* not splitting */ > cobalt_set_enqueue_time(skb, now); > @@ -1904,7 +1906,7 @@ static s32 cake_enqueue(struct sk_buff *skb, struct= Qdisc *sch, > } > b->drop_overlimit +=3D dropped; > } > - return NET_XMIT_SUCCESS; > + return ret; > } > > static struct sk_buff *cake_dequeue_one(struct Qdisc *sch) > -- > 2.37.2 > > _______________________________________________ > Cake mailing list > Cake@lists.bufferbloat.net > https://lists.bufferbloat.net/listinfo/cake --=20 FQ World Domination pending: https://blog.cerowrt.org/post/state_of_fq_code= l/ Dave T=C3=A4ht CEO, TekLibre, LLC