From patchwork Fri Mar 14 17:26:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liang, Kan" X-Patchwork-Id: 14017195 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9C136C282EC for ; Fri, 14 Mar 2025 17:26:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1A6C9280002; Fri, 14 Mar 2025 13:26:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 130A4280001; Fri, 14 Mar 2025 13:26:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EEBDA280002; Fri, 14 Mar 2025 13:26:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id CFFB7280001 for ; Fri, 14 Mar 2025 13:26:54 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 3979D1A1377 for ; Fri, 14 Mar 2025 17:26:55 +0000 (UTC) X-FDA: 83220836790.09.B8566BB Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) by imf15.hostedemail.com (Postfix) with ESMTP id 4B548A000D for ; Fri, 14 Mar 2025 17:26:52 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=krxFLivp; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf15.hostedemail.com: domain of kan.liang@linux.intel.com has no SPF policy when checking 198.175.65.12) smtp.mailfrom=kan.liang@linux.intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741973212; a=rsa-sha256; cv=none; b=qyGwbwk3OC2UeGBCZFmkOmdzIOEfVP3enw5cjfPSUOt4m5Bags/dTdKKRW2npnnTIpnjvx kgCMmPwLqrFj9bhaCe5Sme1nxpYd9t32POALQJ5MjgZw7rFFqupzFE0NzZqkyCEhFcl8WJ 0S1mF4U6zMv2pKQ5G8GmXumxlNzT1uw= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=krxFLivp; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf15.hostedemail.com: domain of kan.liang@linux.intel.com has no SPF policy when checking 198.175.65.12) smtp.mailfrom=kan.liang@linux.intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741973212; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=hI8axYEO9DzbKDYnMK2WmZxmCVVFRgYVczpVhrGk520=; b=1OzuUFWmbeXCisXsXnLlh/cHToH+rrNyeUotg1PAhc6C6DT4ibRHgSpHFd8VlHxpNbm0EK ayYV07PVL5dfx9jT1onSVrtknzT0hD6q6ZQoEVuSimwpX/ff33yHPUc44tC0L9EXhTjlp7 6TJDufCkozNtrQjCHsat6Z8dm83TL38= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1741973212; x=1773509212; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=dp4AYd5zIokUQ1uGBpUz6CR9JIcnAYZG/kwUZz9JECw=; b=krxFLivprVww8m8UUQSG5smLfdezszh1anI4sOcGn5WdPGlWvTNXnzcS RvM0YW+cL0ViMsNKz/f28+ddnOry7vmPRsTlg2uxiFNmxqopYHniUosCA Fns0hghRss31CrYZ0FC5OY25jPDL951xp2fINc8phjB6tCoCOWX+LOOJ1 I3khAVbk/nbpHzyT97MS1nnhtyeIHlWL0bEuV1YQGKxIvcCQtQxBoErET weegkx6S3JOcB2Bq1PG0GyBpf1IXFQXjO6pQe/o+y+ApM4Zr4kYpvYDg9 UR3jJUDcD54SU4r0P5zjGwYJkSOJ/UCsTgduLv7nzqVYACu8qzAD/xQbc g==; X-CSE-ConnectionGUID: WX/iIr6sSP+LtZJ/spWe8w== X-CSE-MsgGUID: Q98BUgZ8RPSS2G2ixsFp7A== X-IronPort-AV: E=McAfee;i="6700,10204,11373"; a="54516542" X-IronPort-AV: E=Sophos;i="6.14,246,1736841600"; d="scan'208";a="54516542" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Mar 2025 10:26:49 -0700 X-CSE-ConnectionGUID: hmq0h1ZjRaa7f3tW9sxG7A== X-CSE-MsgGUID: Z3xlfc67Sqq2dlP271umew== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.14,246,1736841600"; d="scan'208";a="152231806" Received: from kanliang-dev.jf.intel.com ([10.165.154.102]) by orviesa002.jf.intel.com with ESMTP; 14 Mar 2025 10:26:49 -0700 From: kan.liang@linux.intel.com To: peterz@infradead.org, mingo@redhat.com, tglx@linutronix.de, bp@alien8.de, acme@kernel.org, namhyung@kernel.org, irogers@google.com, linux-kernel@vger.kernel.org Cc: ak@linux.intel.com, eranian@google.com, Kan Liang , Dennis Zhou , Tejun Heo , Christoph Lameter , linux-mm@kvack.org Subject: [PATCH V10 2/7] locking/percpu-rwsem: Add guard support Date: Fri, 14 Mar 2025 10:26:55 -0700 Message-Id: <20250314172700.438923-2-kan.liang@linux.intel.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20250314172700.438923-1-kan.liang@linux.intel.com> References: <20250314172700.438923-1-kan.liang@linux.intel.com> MIME-Version: 1.0 X-Rspamd-Server: rspam07 X-Rspam-User: X-Stat-Signature: bja6wcrxfwasodprzynnyy8eps8z55qm X-Rspamd-Queue-Id: 4B548A000D X-HE-Tag: 1741973212-184611 X-HE-Meta: U2FsdGVkX1+o9epyTj7bp388kgysCw5YxkSNkxYiX/msvgXuGvRlVGDJ00JWFPFWqs4dHTKS/gl77Q0mhYcNCBPmRvtLuSFtTvn5DktX6Ad7pN2759iTt1SKuydFIQvHjUMxbnLB/yZtf8NVJ7nZUOXFH/a6POdcdgykk9nc05lHBq2muuZJoEuE4itELKtPh84Vkl9CF1JyYoRLmoI9vOTQmicAxQbZ8fyHXTCOZRBSSGKKtYNOZ5buTRF0Uw/fqTlOWGMRWUpqAuSEnN1gybS+Td1c3ZUNbmiueqANd+MkBE6vKy28WT2RDsSQVH60vbK/Wggk0NXHjsQ85PVRQR4XuK26wcioyCEdEIav3URB5bsVS+WyuQgGtqdozkbQnih8NhYcs47nYgjwsR2kjpfskn21dGEySx4P3aO4GrbwpKxwNMxmqXOVm9fXzWmE0IRFY366ww9M7iFYxWIB5Q7ThIi37zipUscaolJUZYPz24Kl+B1N7WCdN+BEx8XK3VxKTJq9zL/mbuh/0aUAtVqncxb4Bq2C84KkNYQti3HfP5zKXI5abM7bZtNPaRtZuhWu77GVM5V607cVXI1HenVc/Xf4qdMJwMuicBOsceT1yrp+uIdhe0cCRW4GBgBQMaI4awLVkTcAEQ6iMBPgKQUympGnNqDDdYMVAbdB2q+LuV9ggMe8rvjgXPDQ9p0LQ7Pzf5ufRvsNaaRl8oSjATF06lmb/3W7YoCDQtArKW4biN4qfRo1JFhZn8T5ZwxcDQ4wTfNtcWtPZZvrQTp7tdSv9G3CMDG2jQsbStoCvbsIliZmHBckl7Rz9zJl+w2lDe3hgN4v6n4hglcismMGX03rcyj8jHBj9gbSmxxlNHkor8M5VWj+wn+iwE733QYd3VmbX8K+Q6xmFrRNcd4HHsZya+BCF++zkYDshjjt7EjiQO24Y7BaVL+Pgp+9GI7cBktCx2iXoQVmClIhr3/ kPxC7RWQ mpUWyCudqGzAONg2rAymZBH5LgkVNL55HczHKchiSQSEKRix4QMcfhrO7Tj9tqR9Y2Y6yZh4rZmKJwVJQ0OcJ7eRcqah6RMx1+pbb2+xpwP4RH+6Bhwf0DsEq6Ph4GhsVr4oYpdlo4C1ngWf8zKI7sJModjJ7LTB9dTDk8uJVOrCTzQk/qt7HP1npV6xwrAflxoiOBxwtk4IKtSS7eh9jySNjGovi/XQE41BZSRKlg/im5X0VdkFSCOujDp1KygOB6na6RhlH+7pZpOb7qxSpr530/ObgQrTg+MwxZl6udAdi53/nSw5whtCnGOFTqL7Yb5CZAYqjBef5A9hfQYaKQgledfR8+j6UIayRUIYizhbZKX4= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: "Peter Zijlstra (Intel)" To simplify the usage of the percpu rw semaphore. Signed-off-by: Peter Zijlstra (Intel) Signed-off-by: Kan Liang Cc: Dennis Zhou Cc: Tejun Heo Cc: Christoph Lameter Cc: linux-mm@kvack.org --- No changes since V9 include/linux/percpu-rwsem.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/linux/percpu-rwsem.h b/include/linux/percpu-rwsem.h index c012df33a9f0..af7d75ede619 100644 --- a/include/linux/percpu-rwsem.h +++ b/include/linux/percpu-rwsem.h @@ -8,6 +8,7 @@ #include #include #include +#include struct percpu_rw_semaphore { struct rcu_sync rss; @@ -125,6 +126,13 @@ extern bool percpu_is_read_locked(struct percpu_rw_semaphore *); extern void percpu_down_write(struct percpu_rw_semaphore *); extern void percpu_up_write(struct percpu_rw_semaphore *); +DEFINE_GUARD(percpu_read, struct percpu_rw_semaphore *, + percpu_down_read(_T), percpu_up_read(_T)) +DEFINE_GUARD_COND(percpu_read, _try, percpu_down_read_trylock(_T)) + +DEFINE_GUARD(percpu_write, struct percpu_rw_semaphore *, + percpu_down_write(_T), percpu_up_write(_T)) + static inline bool percpu_is_write_locked(struct percpu_rw_semaphore *sem) { return atomic_read(&sem->block);