Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp5961293pxv; Thu, 29 Jul 2021 02:57:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJweF9Yb1nPps2o7eIAAjLIowud91aFbMBwj5yZiKLt35JBW9jQKk/DuXpfs6NgCIt4kI5qk X-Received: by 2002:a02:ccec:: with SMTP id l12mr3740600jaq.61.1627552653214; Thu, 29 Jul 2021 02:57:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627552653; cv=none; d=google.com; s=arc-20160816; b=RYGQ3CBAVqaPs5atFvsxjsqsIf4vih0RH6WR0MIGX5jDxSvlHXfFtIdUsZm6bcQDBT ZiHllSn/QGmWpmcb3Itmb7cKTXZ/eqSDZ4LtqnAzUQ/7dWqXSe5VfTu9QGB0LiHw/IHG uufLxELeXxdgqMQHNhyArsEm8r1MWbE5WygtEgP5DOspYNokS+ME9uQ0vkMM3/1BaYbo X3XIbXu7mTKIJ1kzcfhF2J7lZPY+1LeOZPZ6i9wtHP1uLoJP+qdGKZACfnPxCfsbUJKh Ay9e6meGpgcFUDFxBCFrPcVp2T2IuzFBUVgfCx1gKIpHAQ2YV9dt3l0vZ/zwV5BLo4WK /82w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=x8DRDlOHYQE9FfjX6ho54REEX32yV0VoNFUg6FGEj28=; b=raUugied48PFODuxSMR81Ge4qeVwdtbcWwhxYrmJP1fSoLqghyv22Z4SCMv6YxkwV5 2aDNd+2mSh/l48L6B9ktQG1tfrLSrVXJwHWOhyNsq07sUhDDTN1KNvwrnHs9FmLmy1xJ dgGMTEDsDpfS7iTJKwUPyGzi9j03Ddwssd9EapbonISKn1HqhQXSKrLT1gt3nFdFslrh q8S7pOq+UU3gk3kcjp339v/XjafK+hEhU3fgf7WehtXMW1iTslvkQ0FjEsIVyGLy+Ulr 7fQkvJumg5+wnsWn0wzVkpgDRmsqiFvw/g6DEtnXGR7H4pY9HcwzXWDlTv8QBDvflkM+ c9ng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=pqPn9EwW; 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 m1si3485361ilu.13.2021.07.29.02.57.21; Thu, 29 Jul 2021 02:57:33 -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=pqPn9EwW; 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 S235314AbhG2J4F (ORCPT + 99 others); Thu, 29 Jul 2021 05:56:05 -0400 Received: from mail.kernel.org ([198.145.29.99]:51586 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235692AbhG2J4A (ORCPT ); Thu, 29 Jul 2021 05:56:00 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 67C26600D1; Thu, 29 Jul 2021 09:55:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1627552557; bh=tZY0Ar2/JgZ5Zu3Z2tNNFZUTTvtnn6/xEtJksdoxJqk=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=pqPn9EwW6OD52WDkWEYmU0U1XRcNZ/1t31VTYy2uY2b6egQgMwkIWFNMK+lzJE5HA KGZjgUvea4uusP9+tdh8l448iCwYdN01jwWeJy8F6NvzkupotnJMiCfUR49BELdPxG zePFjLnBQa7yCFwJX/CEr5kCs9cvd/1sRep9aeSD098ksiK6G9QgCqy64wwoBxRL+o hiEtqZnKhAXoRvaTJL0P9Byhl2SBz4RGUhjaeaiHx3iJkch4qcLeHE7iwj3O9vq12O 4RBlJI1P6SmPGThm79Dwe777AddH3u7bOns4ji1r8JUKzaumSxz2BgRE3kGmWpaM0p 4zXC7t+oq4vFg== Date: Thu, 29 Jul 2021 10:55:52 +0100 From: Will Deacon To: Rui Wang Cc: Peter Zijlstra , Ingo Molnar , Arnd Bergmann , Waiman Long , Boqun Feng , Guo Ren , linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, Rui Wang , Xuefeng Li , Huacai Chen , Jiaxun Yang , Huacai Chen , kernel test robot Subject: Re: [RFC PATCH v3] locking/atomic: Implement atomic{,64,_long}_{fetch_,}{andnot_or}{,_relaxed,_acquire,_release}() Message-ID: <20210729095551.GE21151@willie-the-truck> References: <20210729093003.146166-1-wangrui@loongson.cn> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210729093003.146166-1-wangrui@loongson.cn> User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jul 29, 2021 at 05:30:03PM +0800, Rui Wang wrote: > This patch introduce a new atomic primitive andnot_or: > > * atomic_andnot_or > * atomic_fetch_andnot_or > * atomic_fetch_andnot_or_relaxed > * atomic_fetch_andnot_or_acquire > * atomic_fetch_andnot_or_release > * atomic64_andnot_or > * atomic64_fetch_andnot_or > * atomic64_fetch_andnot_or_relaxed > * atomic64_fetch_andnot_or_acquire > * atomic64_fetch_andnot_or_release > * atomic_long_andnot_or > * atomic_long_fetch_andnot_or > * atomic_long_fetch_andnot_or_relaxed > * atomic_long_fetch_andnot_or_acquire > * atomic_long_fetch_andnot_or_release > > Reported-by: kernel test robot > Signed-off-by: Rui Wang > --- > include/asm-generic/atomic-instrumented.h | 72 +++++- > include/asm-generic/atomic-long.h | 62 ++++- > include/linux/atomic-arch-fallback.h | 262 +++++++++++++++++++++- > lib/atomic64_test.c | 92 ++++---- > scripts/atomic/atomics.tbl | 1 + > scripts/atomic/fallbacks/andnot_or | 25 +++ > 6 files changed, 471 insertions(+), 43 deletions(-) > create mode 100755 scripts/atomic/fallbacks/andnot_or Please see my other comments on the other patches you posted: https://lore.kernel.org/r/20210729093923.GD21151@willie-the-truck Overall, I'm not thrilled to bits by extending the atomics API with operations that cannot be implemented efficiently on any (?) architectures and are only used by the qspinlock slowpath on machines with more than 16K CPUs. I also think we're lacking documentation justifying when you would use this new primitive over e.g. a sub-word WRITE_ONCE() on architectures that support those, especially for the non-returning variants. Will