Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp1895605rwb; Tue, 29 Nov 2022 22:21:26 -0800 (PST) X-Google-Smtp-Source: AA0mqf6X3I1N/VilyGOAqt1wxeyl2cFyNdHidoeYeXCQ05J4xs4A0K7/7cAA69bm+DXIEqrqBwdY X-Received: by 2002:a17:906:3ac1:b0:78d:36d8:1814 with SMTP id z1-20020a1709063ac100b0078d36d81814mr49285006ejd.99.1669789286259; Tue, 29 Nov 2022 22:21:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669789286; cv=none; d=google.com; s=arc-20160816; b=VXAx2Pvg3vABXJF00vrKF/0P+mauXQGCt3j6A7faQfcXcI53MNetMq6zfcvfuzmnzX KWDjrVjnuO+3uvVFsR/ffJQ9JUABFndYM0pZp9tF2wITEDEscrygS17qLzIEsxQ+qYiF mIFMKUBqINU6mxZZV3q8v0VZb7i766i1FUUr5+ffS/2Jc455RShBnX4li33NGQZt2Ras znXbvLZijc3VFiYTlUYs5oucTNfWqr7nFOagCrCQ9Qm1uq8Fd6639yQppGxf71jHVsU2 DaNqwI8598AxEB2CT6/GKZ7sDjssN0O6rKgU2X8SM48Q5y2b9KXnqXRxmfbcJkki8P8i IEiQ== 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=6w+OdNdRFHbYUVtJA19A47W8lBW0pPewV38NS5DP0eg=; b=fYXl0X5PDc9BuiMRVS212+bkIR25ThcO0MWJwhDGqeJDye86MHxPwTJOfzLk0f0Eo2 HUP/Idak3eYf8ItmkDj4D9DqJLVKf5bZ8U0cqoTZGUcImN05Iplm13nmuZ+DkRCHaY+P Fa4Auxx/nj8MlMT7/q7DZbqEY+q0rn5S8UfnwLXzJxuUVi/5+iYKeVUEkMoqQlquNGDX O6xZf34Mk8xH4GVA1iSyKG07Fr+07/NK1whzfRvTx5wBk4vQ3cMLaLVxgPrdpVbhO4iU sfmYUvkr2bK/+WLbDbr1WTLw3WwRmNiCTrZbTqQCQzDV8mt5XZ3YC9xv0r5BRvag46HC cuLA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=lkMY4jkW; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w13-20020a05640234cd00b0043dfc949d31si699836edc.25.2022.11.29.22.21.05; Tue, 29 Nov 2022 22:21:26 -0800 (PST) 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=@gmail.com header.s=20210112 header.b=lkMY4jkW; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234049AbiK3F5w (ORCPT + 85 others); Wed, 30 Nov 2022 00:57:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54518 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233955AbiK3F5I (ORCPT ); Wed, 30 Nov 2022 00:57:08 -0500 Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [IPv6:2a00:1450:4864:20::42a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8DF5C77223; Tue, 29 Nov 2022 21:56:56 -0800 (PST) Received: by mail-wr1-x42a.google.com with SMTP id o5so16399736wrm.1; Tue, 29 Nov 2022 21:56:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=6w+OdNdRFHbYUVtJA19A47W8lBW0pPewV38NS5DP0eg=; b=lkMY4jkWg70EE3fQH7Y0sib3cykd1n1T3kHixPfe86BQgLqVRK1uTXnZ6ZiI4GsAgu ozglYdOLC00u0utGIMBkEklWc76MHZ/hajC9tspFxd5XuowHwhEHQk8+rs8tXjBDUTkT baGDyq6obFQviCVni1/SG7bCObZpfJAkCtBGh+UMee+YVRjT89nmcx+Tx5zxfF9YB6Q4 lmBp1J4xjePYoj14v0Fln5WlZanLa+VRF1gm2Vl06X6Wgrmlto6HG+e+1W7rdBZiJr9a 9p8xwCs/gF+IJyxluR4FvW5hS6F97XOHlnut7Dje3r5JmTq3W57ceHF0TbLGCpOK4lJJ OgMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=6w+OdNdRFHbYUVtJA19A47W8lBW0pPewV38NS5DP0eg=; b=Qdwhz0yY2EHkv0jlwHgT0K8C+kLBfCnI9KjPOpi4ZewU67+3lOobGxuGP9o24YMjQa MwdbcDxlsGXv88s6yK88s0jdH1UC/PSnGKzT5G9l4+Lf6bnLguSkA/FVC5GtMIdUDhgQ hupNx93BoFdxPFlfc9W4M/pINnT879vpdsoWRXRBb1b7lJGHOSYN6GI2N9f2G1PZ2vTf bNA3eogMlpoBNA/w2Mx9VK12diCaeiFyh1snuIHFsmyGGHSPD4LZQU3A2ifr4c62adM6 QmFjWRUjehcr7hXR5hd/Eft6OKOmDnAW9kWqPaoDGpsFcT5/kfroU8y5P6EVBmtRxSmH d44w== X-Gm-Message-State: ANoB5pl7KBijOKfTjQaqx+bMGT+GIy5qfOKmJIqdH9CzJkIq2a51vyxr PzANBPmZm/puxTFr4G57Xc0Ots4TmoTqSykTore6X7Tv X-Received: by 2002:a05:6000:181:b0:241:c6f9:3e5a with SMTP id p1-20020a056000018100b00241c6f93e5amr27677332wrx.157.1669787815082; Tue, 29 Nov 2022 21:56:55 -0800 (PST) MIME-Version: 1.0 References: <41eda0ea-0ed4-1ffb-5520-06fda08e5d38@huawei.com> <07a7491e-f391-a9b2-047e-cab5f23decc5@huawei.com> <59fc54b7-c276-2918-6741-804634337881@huaweicloud.com> <541aa740-dcf3-35f5-9f9b-e411978eaa06@redhat.com> <23b5de45-1a11-b5c9-d0d3-4dbca0b7661e@huaweicloud.com> <8d424223-1da6-60bf-dd2c-cd2fe6d263fe@huaweicloud.com> In-Reply-To: From: Tonghao Zhang Date: Wed, 30 Nov 2022 13:56:18 +0800 Message-ID: Subject: Re: [net-next] bpf: avoid hashtab deadlock with try_lock To: Hao Luo Cc: Hou Tao , Waiman Long , Peter Zijlstra , Ingo Molnar , Will Deacon , netdev@vger.kernel.org, Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Jiri Olsa , bpf , "houtao1@huawei.com" , LKML , Boqun Feng Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham 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, Nov 30, 2022 at 1:02 PM Hao Luo wrote: > > On Tue, Nov 29, 2022 at 8:13 PM Hou Tao wrote: > > > > On 11/30/2022 10:47 AM, Tonghao Zhang wrote: > <...> > > > if (in_nmi()) { > > > if (!raw_spin_trylock_irqsave(&b->raw_lock, flags)) > > > return -EBUSY; > > > > The only purpose of trylock here is to make lockdep happy and it may lead to > > unnecessary -EBUSY error for htab operations in NMI context. I still prefer add > > a virtual lock-class for map_locked to fix the lockdep warning. So could you use > > separated patches to fix the potential dead-lock and the lockdep warning ? It > > will be better you can also add a bpf selftests for deadlock problem as said before. > > > > Agree with Tao here. Tonghao, could you send another version which: > > - separates the fix to deadlock and the fix to lockdep warning > - includes a bpf selftest to verify the fix to deadlock > - with bpf-specific tag: [PATCH bpf-next] > > There are multiple ideas on the fly in this thread, it's easy to lose > track of what has been proposed and what change you intend to make. Hi, I will send v2 soon. Thanks. > Thanks, > Hao -- Best regards, Tonghao