Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2064309pxj; Sat, 19 Jun 2021 01:48:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx7T5c1BXR+Ftjk7pw9VJ5x2pGNC/gBV3Lrpw08Xb4WpznR89RS3EdG8AepDzq1kUypjRP/ X-Received: by 2002:a05:6402:5207:: with SMTP id s7mr9890441edd.363.1624092528312; Sat, 19 Jun 2021 01:48:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624092528; cv=none; d=google.com; s=arc-20160816; b=TXBzN446x8l540VCLsq9Ppsg+SgIbXD7fzd2RnlRQN0obtxtHYzo4z8d2rxQBhNzFj PfO+3HqCd0BTIsnTy2PH7smQVQn3uzcIf7f+Ub6W1YtJhuK0oEEJePmLr621t+sChId6 q2l7UtzMJsWgq3zxDVjQnnZpNCVVjI0AURPs5Vu6uSTHCYC5s7GNdRzbBqUlKQTKwjx1 QXqW6YNrxseY9m37ASC4ucQldELlGHxAEO7HpJ+J4x0h0c5axv2CyOQy8y/GlN7HHfod 7z+gBQnnq+xCKx2RlNK4NVsN28VSLxE//X6ZcEFQHsTV6MC8tIhML7ddYPmzA9XpUP1b 6tig== 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=68Z25MfciDU4fudiW+/4InpYdfiAV6uySk/rdey8a1k=; b=DLGNJzfqOYNO17vM73rjG2YpqkTrq8BB9+OV23t7D2xMlkOeshfzEb+UhLbo4J05Uu fk2tSzIEtqJ8QU2XOYyVn45U5W5C/h6w2k+euD3BLJcThbAtl38jBAOROiWNyUheZUN5 qfnVCv5ue/N46J4nO8CpigOy2dxR7DWQC+VRv4P88QFodSc68n5f4pBgSn4cr8SzsLmO 0Bw9BuE8+9kTRfMtOh415di+mToezBRakqquhoDXOZ1Rw74jStDL8mzbBPzDnEdxxlLD Z6p3XuNcWKjTNNxgYK61N+e70dlPjeqg11h5yuLnoxLC1tnUjM7waSfQYRMI/Lfx3KOe 5+PQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=LtD1QQET; 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 v19si7119635edb.495.2021.06.19.01.48.25; Sat, 19 Jun 2021 01:48:48 -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=LtD1QQET; 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 S234731AbhFSAiN (ORCPT + 99 others); Fri, 18 Jun 2021 20:38:13 -0400 Received: from mail.kernel.org ([198.145.29.99]:54594 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232609AbhFSAiN (ORCPT ); Fri, 18 Jun 2021 20:38:13 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 982936108D; Sat, 19 Jun 2021 00:30:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1624062650; bh=fb7gOglTIgwVS2He785TzxOkWPXogDzT/XZ8kGkPjME=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=LtD1QQETPMXaQkcDrvVldrSyDDQkp4a7YGx2LuGrMEG7jF1YDtNDlgZtiJ0m0j0uE rs86SfWfHy137XA3V8rmedtBpHYTpjwVuzMZGaDyAMQQL2e6gYqP1273DsEVvC/w66 mK1zfSf1mmK0S6chAyPU6+MA5ZsFdaM32zHlExSJLjrDtLkJsshrZLMTOAyemqe3vl nHHdbBvAe/MQHTLFQoDJBKBRbWY7ypwgGBogOyXrVwmAQsS+/K5BmWw9YQN2NEFHKZ d4o2/zAOMqR7Rv73OSfmGn5vtQWVPo5jngHjbIWKrTXYYyl+6AwsIbVDaxFtv4y6Ro PRZa87k5Sc0zw== Date: Fri, 18 Jun 2021 17:30:47 -0700 From: Jakub Kicinski To: Yunsheng Lin Cc: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: Re: [PATCH net v2] net: sched: add barrier to ensure correct ordering for lockless qdisc Message-ID: <20210618173047.68db0b81@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> In-Reply-To: <1623891854-57416-1-git-send-email-linyunsheng@huawei.com> References: <1623891854-57416-1-git-send-email-linyunsheng@huawei.com> 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 Thu, 17 Jun 2021 09:04:14 +0800 Yunsheng Lin wrote: > The spin_trylock() was assumed to contain the implicit > barrier needed to ensure the correct ordering between > STATE_MISSED setting/clearing and STATE_MISSED checking > in commit a90c57f2cedd ("net: sched: fix packet stuck > problem for lockless qdisc"). > > But it turns out that spin_trylock() only has load-acquire > semantic, for strongly-ordered system(like x86), the compiler > barrier implicitly contained in spin_trylock() seems enough > to ensure the correct ordering. But for weakly-orderly system > (like arm64), the store-release semantic is needed to ensure > the correct ordering as clear_bit() and test_bit() is store > operation, see queued_spin_lock(). > > So add the explicit barrier to ensure the correct ordering > for the above case. > > Fixes: a90c57f2cedd ("net: sched: fix packet stuck problem for lockless qdisc") > Signed-off-by: Yunsheng Lin Acked-by: Jakub Kicinski