Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp3506803ybz; Mon, 4 May 2020 04:27:30 -0700 (PDT) X-Google-Smtp-Source: APiQypIPBxYN7lHHXpoebROc5jvCjQx9A9oa0S5d2MA58/G/NAcUDaVgGYBzr55+D/qAu/KTnAMb X-Received: by 2002:aa7:d689:: with SMTP id d9mr14215699edr.22.1588591649908; Mon, 04 May 2020 04:27:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588591649; cv=none; d=google.com; s=arc-20160816; b=rE9FkSUSWjUWY69cCdUGBiCgupMvBkWRZJcj0zUuLc6ZpwUMP/5M2NaGOR4Nu2UL6F 5QF/C7VTFkfrzwOQlIaz4gdNG+NsCZOe0hIdK6Hyu9ZKxvzbt746WwvB13j/OMqoKkki OADdFG8Oufr/femX9dCNQn2RRvthcKBynOBMwGjIQGApSWgel/dLaUV7T+oD9L6zwYYO S8GYCWyU9A/FBI0WArJ+9VoUO+tABnd4Y6hUKcVR87Ij538egSGAFanHIcBdAiVNbykZ QbMztyPW7ZoZfJDcE7HCm5XHkF3THdQS2sXybFtTGlw0lrUrXATbQx8mvh7NCKmYDzG7 7z4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=z9mZGNzduK3C7ck0l9jwiZCrlleU+lA3fOfZqMb8b0k=; b=YsXjLrHzoDQ66Ef+ZbdZElpF4/aeiqfHGSURfMuIu2h2rj1SKuZFSDyUvdBdivg5uc pSJOnRpxGtLA0GuyT53bK7hWbsGLKZkBCxP/UFwss0u9vmvzlZeEEei/Ac+FmxHoVHSS m+0/LPQPeBx/TXmqKf4+seIFi+cveRwra8l7J176wEdd7U53PTYLRz12xXPHsqa3ue4C kofSy2qtZwyErbTTKe1mW1PG2Lw8OPCrVa2cNFcaupMjLa+peZQy4taHoSRx7vzDyAYV jngjjkYR0MXxfTKvJgTU1kRqrP2SKdoxKIwdgTRV5aeVs5DZvdOm4qTvtwc/gfHVcX4H LX8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@zx2c4.com header.s=mail header.b=IpF0KAT3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=zx2c4.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g6si6841357edv.588.2020.05.04.04.27.06; Mon, 04 May 2020 04:27:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@zx2c4.com header.s=mail header.b=IpF0KAT3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=zx2c4.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728401AbgEDLXb (ORCPT + 99 others); Mon, 4 May 2020 07:23:31 -0400 Received: from mail.zx2c4.com ([192.95.5.64]:40343 "EHLO mail.zx2c4.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726445AbgEDLXb (ORCPT ); Mon, 4 May 2020 07:23:31 -0400 Received: by mail.zx2c4.com (ZX2C4 Mail Server) with ESMTP id 49e0af25; Mon, 4 May 2020 11:11:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=zx2c4.com; h=mime-version :references:in-reply-to:from:date:message-id:subject:to:cc :content-type; s=mail; bh=MshPdTivdQoEaiICWNo3xWGuO00=; b=IpF0KA T3Flp86mw4XwuAySVKKGzTvzRvxgd+j/1OZCgygCNJwSvUzC0qvPrGi6FzHBlKjP /uZZwjfgGZ9b9joUdSY6SmPbW8L6OCpaGwUS6iCvGOFEdJ9aAEEvDDqrVChDkFjc cg0ssL+i9ZZKKKmjgwwi15OvOq9Z6MyEIcLT34fmi15OJpmk/vrzmXdSYYcW9g1U TW/vLuvXbatTOna8Dja3WBuynAdtA6nn7nsCnG0C6hpxejT5d6LjLixcZmDZSuIG H+KqlweT4z0GjEkZuIRhqyGJVU5A82pmDFfLg8VxlVC+LOR9uVVXnLCaHPy3ejxF ywUgzniriikoQC4g== Received: by mail.zx2c4.com (ZX2C4 Mail Server) with ESMTPSA id b89c4137 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 4 May 2020 11:11:05 +0000 (UTC) Received: by mail-il1-f176.google.com with SMTP id w6so10874770ilg.1; Mon, 04 May 2020 04:23:28 -0700 (PDT) X-Gm-Message-State: AGi0PubGAMAGEIpIOAfqwZdpRlTiYqHAsCoJ9ZauaBxFWIRowFJzrCD8 O192DZVqMcY0F0dqhSBooDBaxkCEhK/l3BqFeCg= X-Received: by 2002:a92:5c82:: with SMTP id d2mr16079991ilg.231.1588591408099; Mon, 04 May 2020 04:23:28 -0700 (PDT) MIME-Version: 1.0 References: <0000000000005fd19505a4355311@google.com> <29bd64f4-5fe0-605e-59cc-1afa199b1141@gmail.com> <85e76f66-f807-ad12-df9d-0805b68133fa@gmail.com> In-Reply-To: <85e76f66-f807-ad12-df9d-0805b68133fa@gmail.com> From: "Jason A. Donenfeld" Date: Mon, 4 May 2020 05:23:17 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: INFO: rcu detected stall in wg_packet_tx_worker To: Eric Dumazet Cc: syzbot , David Miller , Florian Fainelli , Greg Kroah-Hartman , Jamal Hadi Salim , =?UTF-8?B?SmnFmcOtIFDDrXJrbw==?= , Krzysztof Kozlowski , Jakub Kicinski , kvalo@codeaurora.org, leon@kernel.org, LKML , linux-kselftest@vger.kernel.org, Netdev , Shuah Khan , syzkaller-bugs@googlegroups.com, Thomas Gleixner , vivien.didelot@gmail.com, Cong Wang Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org So in spite of this Syzkaller bug being unrelated in the end, I've continued to think about the stacktrace a bit, and combined with some other [potentially false alarm] bug reports I'm trying to wrap my head around, I'm a bit a curious about ideal usage for the udp_tunnel API. All the uses I've seen in the kernel (including wireguard) follow this pattern: rcu_read_lock_bh(); sock = rcu_dereference(obj->sock); ... udp_tunnel_xmit_skb(..., sock, ...); rcu_read_unlock_bh(); udp_tunnel_xmit_skb calls iptunnel_xmit, which winds up in the usual ip_local_out path, which eventually winds up calling some other devices' ndo_xmit, or gets queued up in a qdisc. Calls to udp_tunnel_xmit_skb aren't exactly cheap. So I wonder: is holding the rcu lock for all that time really a good thing? A different pattern that avoids holding the rcu lock would be: rcu_read_lock_bh(); sock = rcu_dereference(obj->sock); sock_hold(sock); rcu_read_unlock_bh(); ... udp_tunnel_xmit_skb(..., sock, ...); sock_put(sock); This seems better, but I wonder if it has some drawbacks too. For example, sock_put has some comment that warns against incrementing it in response to forwarded packets. And if this isn't necessary to do, it's marginally more costly than the first pattern. Any opinions about this? Jason