From mboxrd@z Thu Jan 1 00:00:00 1970 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 ED55BC3ABC3 for ; Tue, 13 May 2025 10:07:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A12616B0088; Tue, 13 May 2025 06:07:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9C0C46B0089; Tue, 13 May 2025 06:07:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7C9526B008A; Tue, 13 May 2025 06:07:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 5C7ED6B0088 for ; Tue, 13 May 2025 06:07:49 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id A74421A052F for ; Tue, 13 May 2025 10:07:50 +0000 (UTC) X-FDA: 83437458300.18.E6DDBC7 Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf25.hostedemail.com (Postfix) with ESMTP id C043EA0007 for ; Tue, 13 May 2025 10:07:48 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=none; spf=pass (imf25.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747130869; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:in-reply-to: references:references; bh=fCkKJOYCEiMVa+SfnqpUZKxYczjixwJpyECI+Kw4P3U=; b=lilVIVMtenYtlDu52RTHsOqHg6XuL4DI8q1HXjyOf436WICfbxGj5+6klQO7VwM/0f1qt/ ifV685KZI6XnmkfZjqDwPi5m0fRo72hUKce5PHuhhYMFgWU0+RJF6BGFPi8qi3iBzSGRey TCalZBDLP9zrz2yjetZJ8vp3x+JZCfY= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=none; spf=pass (imf25.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747130869; a=rsa-sha256; cv=none; b=fWRKm3HXfZSp/RwXFs5ZbK4cDElyal8lXckpD6Vg5t8RQvoEFs6YOeJRlzitmjZtJ8uo/4 Gp9X3lZLwWcwKeK2RLQWluf8bqCqcFgu3f2WGmyhnY/4t1Gse96MEsAhMdB79ismg+AT/h ENInFtzNzTjN2kUGNp9HsHxLrkag4MA= X-AuditID: a67dfc5b-669ff7000002311f-fb-682319ed8f02 From: Byungchul Park To: linux-kernel@vger.kernel.org Cc: kernel_team@skhynix.com, torvalds@linux-foundation.org, damien.lemoal@opensource.wdc.com, linux-ide@vger.kernel.org, adilger.kernel@dilger.ca, linux-ext4@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, will@kernel.org, tglx@linutronix.de, rostedt@goodmis.org, joel@joelfernandes.org, sashal@kernel.org, daniel.vetter@ffwll.ch, duyuyang@gmail.com, johannes.berg@intel.com, tj@kernel.org, tytso@mit.edu, willy@infradead.org, david@fromorbit.com, amir73il@gmail.com, gregkh@linuxfoundation.org, kernel-team@lge.com, linux-mm@kvack.org, akpm@linux-foundation.org, mhocko@kernel.org, minchan@kernel.org, hannes@cmpxchg.org, vdavydov.dev@gmail.com, sj@kernel.org, jglisse@redhat.com, dennis@kernel.org, cl@linux.com, penberg@kernel.org, rientjes@google.com, vbabka@suse.cz, ngupta@vflare.org, linux-block@vger.kernel.org, josef@toxicpanda.com, linux-fsdevel@vger.kernel.org, jack@suse.cz, jlayton@kernel.org, dan.j.williams@intel.com, hch@infradead.org, djwong@kernel.org, dri-devel@lists.freedesktop.org, rodrigosiqueiramelo@gmail.com, melissa.srw@gmail.com, hamohammed.sa@gmail.com, harry.yoo@oracle.com, chris.p.wilson@intel.com, gwan-gyeong.mun@intel.com, max.byungchul.park@gmail.com, boqun.feng@gmail.com, longman@redhat.com, yskelg@gmail.com, yunseong.kim@ericsson.com, yeoreum.yun@arm.com, netdev@vger.kernel.org, matthew.brost@intel.com, her0gyugyu@gmail.com Subject: [PATCH v15 04/43] dept: add lock dependency tracker APIs Date: Tue, 13 May 2025 19:06:51 +0900 Message-Id: <20250513100730.12664-5-byungchul@sk.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20250513100730.12664-1-byungchul@sk.com> References: <20250513100730.12664-1-byungchul@sk.com> X-Brightmail-Tracker: H4sIAAAAAAAAAzWSfUiTaxjGfZ73a652ztuSfMvgnDMxSenDsroJCyM4PVBBUP1TdGrlixtO jVmWQaDNzD40K9RO62POmjvbKs80tQ/TVmkmmaWZipqKSZJOW240M2tL+ufmx3VdXPc/l4SS 1zPzJOqkA6I2SalRsFJaOjKzaJFzbqhq6YVKKbjHs2m4fNvGQvMtKwJbeQaGoacb4K1nGMHX Fy8pKMxvRlDU101BeV0PgmrzMRZaBn6DVvcoCw35p1nQFd9m4dXHSQxdBecxWO2b4Z1pkIbG PCOGwiEW9IU67DsfMHhNFg5M6WHQb77EwWRfFDT0tDFQ3RkJ/17tYuFBdQMNdVX9GFruXWah x/adgca6ZzR4ckOg+VwOAzedRhY+ekwUmNyjHLyuNWCoM8yB0kxfYdbnKQbqc2oxZF3/H0Nr x30ED7N7MdhtbSw8dg9jKLPnUzBR8hRBf+4IB8fPeDnQZ+QiOH28gIbMrhXw9Yvv85XxKMi4 VkrDzW9tKHYNsV21IfJ4eJQimWWHyIT7DUuqPQaaPDcK5O6lbo5kPuzkiMF+kJSZI0jxgyFM ilxuhtgtJ1lid53nyKmRVkycTU3clvk7pDFxokadKmqXrN0jVV1z6Zj974MPDzS9xOnILD+F AiUCHy3UtJzAv/j11AvGzywfLrS3eyk/B/F/CmU5gz5dKqH4thnC2ysdyG/M5tcJA531P5nm w4SBjl7WzzJ+hTBR04imS/8QrKW1P4sC+ZXCt5Im2s9yXybPYKWnM2cDBde51dM8V3hkbqfz kMyAAixIrk5KTVSqNdGLVWlJ6sOL9yUn2pFvXqajkzurkKt5qwPxEqSYKXs29JdKzihTU9IS HUiQUIogWUalT5LFKdOOiNrk3dqDGjHFgUIktCJYtsxzKE7OxysPiAmiuF/U/nKxJHBeOrrh NNLfNXfGyvWhEdvtZ9f/3RcUE7N27+pI9Pv8ilDbmO7GpuTYjYb3E+HFlqwqXS8X8I8yYUl4 Qk4ABBdl/2fauCA+mhQsDZtcZeFbGvZsn+X4bP0wFlaxd/Pu2C8V2wYveD9ddDj1kfeNJSGt Pd2WXdSmquDlU3Htnd6F+qO3nijoFJUyKoLSpih/AP7eDKJaAwAA X-Brightmail-Tracker: H4sIAAAAAAAAAzWSa0iTYRTHfd67q8XLknxLonojIstKaHKgkPpQPt0vBFEEOfSlLa9saRoU W2qUpphgUmbOWdPmLJ1BZs5E0VriNDVLUTOzi+WUzFmaVlvRl8OP///wO18ORyos9BJOE3ta 0saqokVGRsn2bU4Jci1eqd74vSMI3JOXKLh538pA+70yBNYHBgJGmsLg1dQogp+tbSTk5bYj KHrbT8KD5gEE9tILDHQOL4Au9zgDjtwMBlKK7zPw4sssAX3Xcggos+2FN+YPFLRkmwjIG2Eg Py+F8IxPBEybLSyY9atgqPQGC7Nvg8Ex0E1DY4GDBnvvWrh+q4+BWruDgubqIQI6a24yMGD9 TUNL8zMKprICoP1qJg3lYyYGvkyZSTC7x1noqDcS0GxcBBWpHuvFb79oeJpZT8DF25UEdPU8 RlB3aZAAm7WbgUb3KAFVtlwSZkqaEAxluVhIuzLNQr4hC0FG2jUKUvuU8POH53LBZDAYCiso KJ/rRltDsfWWFeHG0XESp1adwTPulwy2Txkp/Nwk4Ec3+lmcWtfLYqMtAVeVBuLi2hECF024 aWyzXGawbSKHxemuLgKPOZ3sgaXHZFsipWhNoqTdEBouUxdOpNDx7/2Thp1thB6VKtKRLyfw m4SOX620lxl+tfD69TTpZT9+uVCV+cGTyziS754nvCroQd5iIb9NGO59+pcpfpUw3DPIeFnO K4WZJy3on3SZUFZR/1fky4cIcyVOyssKz062sYzKRjIj8rEgP01sYoxKE61cr4tSJ8dqktZH xMXYkOeDzOdmr1ajyc6wBsRzSJwvfzayQq2gVYm65JgGJHCk6Cc3PPRE8khV8llJG3dCmxAt 6RpQAEeJ/vJdR6RwBX9SdVqKkqR4Sfu/JTjfJXoEhyLy11gKk9J2H91i32UK2yyfd/a4abC8 sjJ9B37HNmQGiFFFG1yHa7a5fT6u2ytmfA1afcdxnusItPS7Tk2KuGQHN9sWrt+/P35s6Tkx PURvDXX4UON65efI4qCEPXevhPrvdAR0Gt4UsOUh0vY775QHTyWcWPm8ds6Zc73aJVI6tSo4 kNTqVH8AJbTJYz0DAAA= X-CFilter-Loop: Reflected X-Rspam-User: X-Rspamd-Queue-Id: C043EA0007 X-Rspamd-Server: rspam09 X-Stat-Signature: ihah76tjnujqayi5w3gg9uwifsgz5xnm X-HE-Tag: 1747130868-847870 X-HE-Meta: U2FsdGVkX1/ANXIMLWRAqEU/9BGKGK6I63grcwX2q6yutc9wEwwliSiSIXS9SrTBAHx9FtOaQhhmSFRvTEvcFRxlYFZBjFfucAKQtvf9BqTAWTlLSRHqgOKftGEdbsMvlJno9HL0RGvMNGXExCldSDQwTjQx7AhC4MJD0t00bkyjXb5GcopfjJ7o7aOhZCkqAwOHyjXucbLgAT5zugnLzPOZ5bdIQGJOdd359/LmPhalJ/c3pgELll6a9QSLslhD02+3DrOXnkxf6m0EnEJW+mMCmxS0+aDWSoeqvutUrttytfN+kL0qqFBiFtaObsRBxi61vXm62Jtn/lJciAt9fE3ZoN6WcjSK5xPRCyaUni4TXlV7jBy3Br1tisC45fOQEb7ArxVHNnsZeXg28Wme7iNptA3N5JtdHRB57KXsrtqIyBRTxfOi/eDjIYe7/X+oPEp9qWUUb9i4nQ0os3JMqoNVlWH8yUP2viaZuJvpotqFzFph57t1oXlcL/N/3iucM68fUfOq8fUW0WbS0URPxn1/HSm+TCYFjLzYwliaV0ZC7STJzInifqz5XxPsGlEH136zT9G2mpR+apB5GV5N0kYNyHSq+vy2ou6mTUsUvwNt0WlRRT88Q18tD97qFXIupRaTCCVbcSrvF+Fl3ZynBnpoPaoVPMcfcWanW7qnmKJPbCZRvW+gj0UJ17TX4AwfRWieMgJoYyMu+gopZnn1vsDAqj9P9GTYCysagVrIp2iZ9UHHc6YLP2JSSGcJw2uogDV5cYHhz905bTiz5v2248+xpbq99CvEkYSxIO3ErOcpTiiS1NEtVejHHEn33w9t4DXmiVgZ5tu9AordQHKYDdFnQT8SJul0irUHzx53w9M+FpTK/5CUylAf1YhR+iHtcYgYS08rnYj8AnoJYE7/NCtNlH7Jt+s1bvIs9Y8w8bUrdFBT8YteqvaCAS770pISEt+XluDRJUqFFvmugz0 me7r0Fbl dt6uJF92FkW5nfWAJCrPSoHj/vAq8F40lozrYtQhyYZNt+42nfzwvBHHPO/170KiFwOyQML/lHpAxHR7qDGghBjwjaQ== 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: Wrap the base APIs for easier annotation on typical lock. Signed-off-by: Byungchul Park --- include/linux/dept_ldt.h | 77 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 include/linux/dept_ldt.h diff --git a/include/linux/dept_ldt.h b/include/linux/dept_ldt.h new file mode 100644 index 000000000000..062613e89fc3 --- /dev/null +++ b/include/linux/dept_ldt.h @@ -0,0 +1,77 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Lock Dependency Tracker + * + * Started by Byungchul Park : + * + * Copyright (c) 2020 LG Electronics, Inc., Byungchul Park + */ + +#ifndef __LINUX_DEPT_LDT_H +#define __LINUX_DEPT_LDT_H + +#include + +#ifdef CONFIG_DEPT +#define LDT_EVT_L 1UL +#define LDT_EVT_R 2UL +#define LDT_EVT_W 1UL +#define LDT_EVT_RW (LDT_EVT_R | LDT_EVT_W) +#define LDT_EVT_ALL (LDT_EVT_L | LDT_EVT_RW) + +#define ldt_init(m, k, su, n) dept_map_init(m, k, su, n) +#define ldt_lock(m, sl, t, n, i) \ + do { \ + if (n) \ + dept_ecxt_enter_nokeep(m); \ + else if (t) \ + dept_ecxt_enter(m, LDT_EVT_L, i, "trylock", "unlock", sl);\ + else { \ + dept_wait(m, LDT_EVT_L, i, "lock", sl); \ + dept_ecxt_enter(m, LDT_EVT_L, i, "lock", "unlock", sl);\ + } \ + } while (0) + +#define ldt_rlock(m, sl, t, n, i, q) \ + do { \ + if (n) \ + dept_ecxt_enter_nokeep(m); \ + else if (t) \ + dept_ecxt_enter(m, LDT_EVT_R, i, "read_trylock", "read_unlock", sl);\ + else { \ + dept_wait(m, q ? LDT_EVT_RW : LDT_EVT_W, i, "read_lock", sl);\ + dept_ecxt_enter(m, LDT_EVT_R, i, "read_lock", "read_unlock", sl);\ + } \ + } while (0) + +#define ldt_wlock(m, sl, t, n, i) \ + do { \ + if (n) \ + dept_ecxt_enter_nokeep(m); \ + else if (t) \ + dept_ecxt_enter(m, LDT_EVT_W, i, "write_trylock", "write_unlock", sl);\ + else { \ + dept_wait(m, LDT_EVT_RW, i, "write_lock", sl); \ + dept_ecxt_enter(m, LDT_EVT_W, i, "write_lock", "write_unlock", sl);\ + } \ + } while (0) + +#define ldt_unlock(m, i) dept_ecxt_exit(m, LDT_EVT_ALL, i) + +#define ldt_downgrade(m, i) \ + do { \ + if (dept_ecxt_holding(m, LDT_EVT_W)) \ + dept_map_ecxt_modify(m, LDT_EVT_W, NULL, LDT_EVT_R, i, "downgrade", "read_unlock", -1);\ + } while (0) + +#define ldt_set_class(m, n, k, sl, i) dept_map_ecxt_modify(m, LDT_EVT_ALL, k, 0UL, i, "lock_set_class", "(any)unlock", sl) +#else /* !CONFIG_DEPT */ +#define ldt_init(m, k, su, n) do { (void)(k); } while (0) +#define ldt_lock(m, sl, t, n, i) do { } while (0) +#define ldt_rlock(m, sl, t, n, i, q) do { } while (0) +#define ldt_wlock(m, sl, t, n, i) do { } while (0) +#define ldt_unlock(m, i) do { } while (0) +#define ldt_downgrade(m, i) do { } while (0) +#define ldt_set_class(m, n, k, sl, i) do { } while (0) +#endif +#endif /* __LINUX_DEPT_LDT_H */ -- 2.17.1