Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp899323pxj; Fri, 14 May 2021 20:22:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzTO3mXrGNc1b9Tm7rVPRMP0onKlznZanyu5LS6kvYcjpg6O0egvpBGbOEkWAfzK55oHpaV X-Received: by 2002:a05:6402:1807:: with SMTP id g7mr58565069edy.335.1621048933154; Fri, 14 May 2021 20:22:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621048933; cv=none; d=google.com; s=arc-20160816; b=hlMbZV4CnenpMstR2weARqUcV6dQvA0VI/wlSwRed0KooDF43TehHrcHRJGic4+vf0 vcwe/WSDYhJWQV3onNFGkHQCkc39oa8dUYyE/ruyu0BxwHMmcP3CAR62GxIzI/RDL9La 8ckoPs9d41u6fyRAozllAmVidlbEoispFq/SFP/jCMbQeHl83a3fso4jGQqQsnQI8pCQ ulECJgC3ruI4xGGy3BzY+Q3Vcc+8ZvZEbjqI+UaC+DbUW52xG4iPLrTbnP3AyXH07MX6 dV93DhczxcrI57THePxSnLDm0lCkFHXTGL6ESiwOOu3z/dQ5Flu1cIEye7315KOsajah Uqww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=dzN6wd5ysW3JjNquLZqsR5gopsk4vPqX5K9etITZwqU=; b=rAND5ng0tiaPryHjvJPbJ095RfnqsLXPZz/wIpE+jTVRw8EwzpI4TBxk251cD5BjLX 9xghVQtUBefmND7dTlquH8BPh94L2fAiHr2z3XjVvhpz+tpmJEgcWrsADNN812wsbC7Z ySb5X1BC7Wle4VLNEiihyBMAl8Ahcd0nKguFf3EN1/XZ1pmgNzjd3URwyAJ0ajsoG8S2 dgs8WkDeCbGGBdfWnKO7jnNOxmnCTJsbsEkXEMsRWpKZufikwQN2tft31NsjxcoZnWAJ pd0BH+YG6vfEmeeo/3wztesUTMc9vxa5qUWIlDHABP9ijDq1WEZIxxYYQhvxcn05yBLQ zZfg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=FdwnoktU; 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=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x24si4169439ejw.605.2021.05.14.20.21.48; Fri, 14 May 2021 20:22:13 -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=@kernel.org header.s=k20201202 header.b=FdwnoktU; 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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234486AbhEOATQ (ORCPT + 99 others); Fri, 14 May 2021 20:19:16 -0400 Received: from mail.kernel.org ([198.145.29.99]:37742 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233856AbhEOATO (ORCPT ); Fri, 14 May 2021 20:19:14 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 8D7E5613C1; Sat, 15 May 2021 00:18:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1621037881; bh=+s/88Y7HX4sY22PkY201rbIdAcvJgMX3KGUSkg05MC0=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=FdwnoktUZh3aVFXG/ufBS/N36rRZCT3+atxRZZ2MSx6f5bl11+2gYw4oKli/yNxyK 6NgbZH/gabNzG5LyoRCsmificZUyVd95ASLKXi0ZBQs0zyq3tJ28YcPd0T6jhm4A+j xkugOJv/qpEGGLLEb5rSCwSJuM+917cwl7RhVxji9Uhq9P0QEvRUcWku091cHUIzjy iTdEA1hQ9mMdC8N91JyQ74RCL2l3U3UsFAv998VzrcJHm42brsRFlhbVxzLbQxgkWu 3xGjxkbH0q/g6xXctqjXg5hPItahPM2xSNbHCTjMnKuSg+XLAVSjpWLdeLh0+2pHGz joic2sBURqD1w== Date: Fri, 14 May 2021 17:17:59 -0700 From: Jakub Kicinski To: Cong Wang Cc: Yunsheng Lin , David Miller , Vladimir Oltean , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Eric Dumazet , Wei Wang , "Cong Wang ." , Taehee Yoo , Linux Kernel Network Developers , LKML , linuxarm@openeuler.org, Marc Kleine-Budde , linux-can@vger.kernel.org, Jamal Hadi Salim , Jiri Pirko , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , kpsingh@kernel.org, bpf , Jonas Bonn , Paolo Abeni , Michael Zhivich , Josh Hunt , Jike Song , Kehuan Feng , Ahmad Fatoum , atenart@kernel.org, Alexander Duyck , Hillf Danton , jgross@suse.com, JKosina@suse.com, Michal Kubecek , =?UTF-8?B?QmrDtnJuIFTDtnBlbA==?= , Alexander Lobakin Subject: Re: [PATCH net v8 1/3] net: sched: fix packet stuck problem for lockless qdisc Message-ID: <20210514171759.5572c8f0@kicinski-fedora-PC1C0HJN> In-Reply-To: References: <1620959218-17250-1-git-send-email-linyunsheng@huawei.com> <1620959218-17250-2-git-send-email-linyunsheng@huawei.com> <20210514163923.53f39888@kicinski-fedora-PC1C0HJN> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 14 May 2021 16:57:29 -0700 Cong Wang wrote: > On Fri, May 14, 2021 at 4:39 PM Jakub Kicinski wrote: > > > > On Fri, 14 May 2021 16:36:16 -0700 Cong Wang wrote: > [...] > > > > > > We have test_and_clear_bit() which is atomic, test_bit()+clear_bit() > > > is not. > > > > It doesn't have to be atomic, right? I asked to split the test because > > test_and_clear is a locked op on x86, test by itself is not. > > It depends on whether you expect the code under the true condition > to run once or multiple times, something like: > > if (test_bit()) { > clear_bit(); > // this code may run multiple times > } > > With the atomic test_and_clear_bit(), it only runs once: > > if (test_and_clear_bit()) { > // this code runs once > } > > This is why __netif_schedule() uses test_and_set_bit() instead of > test_bit()+set_bit(). Thanks, makes sense, so hopefully the MISSED-was-set case is not common and we can depend on __netif_schedule() to DTRT, avoiding the atomic op in the common case.