Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp4994923iog; Wed, 22 Jun 2022 09:45:31 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uQUuC5vQJ8IwP8IPAjbA0ogZygIZBe/ZXl8ZknBv4T3p29uYld4XlFOu5MltW+6enSaYey X-Received: by 2002:a17:902:b68a:b0:168:c167:819f with SMTP id c10-20020a170902b68a00b00168c167819fmr35209593pls.96.1655916331375; Wed, 22 Jun 2022 09:45:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655916331; cv=none; d=google.com; s=arc-20160816; b=G4Oee5f0GYa3iio+dowcA5tDJ4wGvMa5XjO3eyYYWJu7w3euQdp0gSHCSgVZHopROs zJTp8ITR/q4gVtViRsP+IVmH0XDhwEDhQIZLmKghfLbk3jN1UClualLrEWo8FZYoZIIG Vjd9OSJDTwV/aeNNESQozEzQD1FucQdTiB178104k9GKnPSrpz+4lu9LsSZh8bLVHLEt b5xLNFHzCCoqmR3DH/flcRhRHLBhawk45d4ljUh0EqGEkOehj8Ycs1ifIwd3Bue9YbiI oRsGpF9WkVPcyRpf+fZS7jT+FbucxDyhSiGvBUycvOuYQ/Xeu8L69Tcwy4KTg96lZWLN OcFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=5L9B2F5DxgxEwUF4SO/M3juq2QVguuraKNG6M5m+j8w=; b=qw2YtiCJ8SHj3yn/QdLWXC5E4QeHrbaXiLSCmo8MU0qtfYbVGvmzCxmP0gsK/Phi1c VhcJu58AdhOp9AV9w5t1pcCAVG0GoSTTpy7yIcnLAC0TQFe907N+3S8MsxEfiBf5cPI0 dDVr0GJWJM59P1hl9ogKrIgWM7x5onCNpbZMWs+mvrZICc7FJBU6U3qu2BLjCyzU05dl T9XA9rVEzLQ3CVfJUwZJqbKpor5C+ggIfjBOZZxy5XzX9KmjA+7/GK5BW6Qruo/1v7Fs ZQYJfsTfwc7cfta01NAh2QutLZUJIhzbjWNj8kbuo1kUA9mE+DgkLtRM0Oo0wd7gqmkG 3kAQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=YX7lGMmS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id o4-20020a170902d4c400b0015d04e10579si9966136plg.352.2022.06.22.09.45.17; Wed, 22 Jun 2022 09:45:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=YX7lGMmS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358980AbiFVQ3x (ORCPT + 99 others); Wed, 22 Jun 2022 12:29:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37536 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1358957AbiFVQ3v (ORCPT ); Wed, 22 Jun 2022 12:29:51 -0400 Received: from mail-yb1-xb2c.google.com (mail-yb1-xb2c.google.com [IPv6:2607:f8b0:4864:20::b2c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2074C33893 for ; Wed, 22 Jun 2022 09:29:47 -0700 (PDT) Received: by mail-yb1-xb2c.google.com with SMTP id l11so31062961ybu.13 for ; Wed, 22 Jun 2022 09:29:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=5L9B2F5DxgxEwUF4SO/M3juq2QVguuraKNG6M5m+j8w=; b=YX7lGMmSIM0ipx4rHeLX1aZjiMzymgIc1RdgkkYLyLBaKs/tyo6Ld8mO0XwMREmTBL 83BaVvRSJjwXgcApbA7Y6yb+Ved5XPvqJa8rV5a6ZbaZLobZjVgbF2f3Hu/w14VGTOMG OFpLd2tPUNK439bPNRlIlR9xu8J6lEH0oSzPIIG4ragPD0yLYPPxUOtugpzycVcFzqKd xzMI/cnq9ckM8XSG0mIpUizTlLxikuN30/vORy0Qw8JweLevj2A2rfCZZmsI3tpQOZ/7 ivfazIJfvotbGN87aof2YIcO+tLhDf9a8qsEyM8X3f19PqWWCuDvN2PnbiRDJUkwAhdf Uf8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=5L9B2F5DxgxEwUF4SO/M3juq2QVguuraKNG6M5m+j8w=; b=PODneTBdpVAymk3xqkXBWyn5+IEFt0XIH3nmG5nBr/4QtmCqhoJq6Z2xaSA6HAUgUR JLfIb0h57yy+xyFrjRrC1L2IA+MirtztuiyGyP9d5lIiZX1RGOxEk0MMl322+A1zhCfe 50jmNaxmqlrMR7E4rXNLKtVF/FyIjvOAa7qF2zFunORyRWG1VDo+CnRzgsKdilDtkioh dTvDZYhxtWYRUaI0sZ6Q6rt50j622hCwqxlLNYvgIWAlMM6baASNgKzYxS50/frOzAG9 KjMBPs9ZShFFHSUraLC2Hv7+38WwXEVG9J4z5vGxsMENXeyZDxyggFgMQWmh5L80b8yq xesA== X-Gm-Message-State: AJIora9pgP00wQ7/4RVvjO0AiDU+Hvn+mndq3xpSAyN4lesA3xIdPyEb 177TI3dPk3pCrTAx/A/uXfyBQZG4QU0OdOV2mBgMuQ== X-Received: by 2002:a25:ae23:0:b0:668:daf8:c068 with SMTP id a35-20020a25ae23000000b00668daf8c068mr4570417ybj.427.1655915385986; Wed, 22 Jun 2022 09:29:45 -0700 (PDT) MIME-Version: 1.0 References: <20220619003919.394622-1-i.maximets@ovn.org> <20220622102813.GA24844@breakpoint.cc> <068ad894-c60f-c089-fd4a-5deda1c84cdd@ovn.org> In-Reply-To: <068ad894-c60f-c089-fd4a-5deda1c84cdd@ovn.org> From: Eric Dumazet Date: Wed, 22 Jun 2022 18:29:33 +0200 Message-ID: Subject: Re: [PATCH net] net: ensure all external references are released in deferred skbuffs To: Ilya Maximets Cc: Steffen Klassert , Herbert Xu , Florian Westphal , netdev , "David S. Miller" , dev@openvswitch.org, LKML , Jakub Kicinski , Paolo Abeni Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jun 22, 2022 at 4:26 PM Ilya Maximets wrote: > > On 6/22/22 13:43, Eric Dumazet wrote: > > I tested the patch below and it seems to fix the issue seen > with OVS testsuite. Though it's not obvious for me why this > happens. Can you explain a bit more? Anyway, I am not sure we can call nf_reset_ct(skb) that early. git log seems to say that xfrm check needs to be done before nf_reset_ct(skb), I have no idea why. I suspect some incoming packets are not going through xfrm4_policy_check() and end up being stored in a TCP receive queue. Maybe something is missing before calling tcp_child_process() > > > > > I note that IPv6 does the nf_reset_ct() earlier, from ip6_protocol_deliver_rcu() > > > > diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c > > index fda811a5251f2d76ac24a036e6b4f4e7d7d96d6f..a06464f96fe0cc94dd78272738ddaab2c19e87db > > 100644 > > --- a/net/ipv4/tcp_ipv4.c > > +++ b/net/ipv4/tcp_ipv4.c > > @@ -1919,6 +1919,8 @@ int tcp_v4_rcv(struct sk_buff *skb) > > struct sock *sk; > > int ret; > > > > + nf_reset_ct(skb); > > + > > drop_reason = SKB_DROP_REASON_NOT_SPECIFIED; > > if (skb->pkt_type != PACKET_HOST) > > goto discard_it; > > @@ -2046,8 +2048,6 @@ int tcp_v4_rcv(struct sk_buff *skb) > > if (drop_reason) > > goto discard_and_relse; > > > > - nf_reset_ct(skb); > > - > > if (tcp_filter(sk, skb)) { > > drop_reason = SKB_DROP_REASON_SOCKET_FILTER; > > goto discard_and_relse; >