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 6EA7DCE7A81 for ; Mon, 25 Sep 2023 03:58:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F3E556B0167; Sun, 24 Sep 2023 23:58:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E9E6F6B016D; Sun, 24 Sep 2023 23:58:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D196B6B016E; Sun, 24 Sep 2023 23:58:02 -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 BA0856B0167 for ; Sun, 24 Sep 2023 23:58:02 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 95DA21CA61E for ; Mon, 25 Sep 2023 03:58:02 +0000 (UTC) X-FDA: 81273761604.07.AC72D7D Received: from mail-ot1-f43.google.com (mail-ot1-f43.google.com [209.85.210.43]) by imf03.hostedemail.com (Postfix) with ESMTP id CB9EE2000D for ; Mon, 25 Sep 2023 03:57:59 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=Q2S3K4GP; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf03.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.210.43 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1695614279; 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=KhsUxrKihKzaZBkbG2I3+KMiT6cOrZp7m1AFdT6cq6c=; b=UDuNouBghYIUuSTyrS9kLk/k5R3u1Gf5rGQlVao5Eknymu67KO9tuTVd7kX2k0k0U2e/QE XFXaSkMbqbClCPEkmBj82cSJ3Ke/p7IgByffLGWqnITF4Vn0yVWcW2eD8zNgOVdQg+Ddd2 g9jSvWniTdNNZZ98j0nUDQEBwpsgjF4= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=Q2S3K4GP; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf03.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.210.43 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1695614279; a=rsa-sha256; cv=none; b=ZSssm4Ex+6wwVfEXVV8X+HNp6wKDchA8b+RJO0MIau1JPmVYNEgCShJYzPIXJ3zcZQMNur MryQzulNm/BXH9sBAzBPbmlFkHepd7S9n4UT8Py4x7Uy+hinCfh961kre0ZNr48z7CDvZt qY9dzs8Q3wHl9RDt4abP0eC7sOQip40= Received: by mail-ot1-f43.google.com with SMTP id 46e09a7af769-6c0b727c1caso3842662a34.0 for ; Sun, 24 Sep 2023 20:57:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1695614279; x=1696219079; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KhsUxrKihKzaZBkbG2I3+KMiT6cOrZp7m1AFdT6cq6c=; b=Q2S3K4GPlAOqHBIEDKditOnLfwDXFrZAJgCXFhsbRaJWZwTYZCQ116j1aa/JBHa5qz Rzh2517teSYwSeO4+x2TEH5x51U99ncFH4Pgf2KZm6qEJHhGL2NA+7HIp/FTc4tefTen Jz2V0737qJoLI5CVwUoe2NZU/eRqOGEsyrjGltySsXA0YLXwcDGoIIhIIqs+/8FKy9zL I47tD0N1hQa1Ezw7jFGOf92HDHFWv7aapcGQbx6kq/ChscnwLgn4jLi23Enn/4IIR5ta lmfm+JLuwbXvZd5xGLJ/m1cEf3wADJxMmDGK9a0cqkq+ysamF1aCPcL4j6YMb6xSCm7t Yd7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695614279; x=1696219079; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KhsUxrKihKzaZBkbG2I3+KMiT6cOrZp7m1AFdT6cq6c=; b=OcmnOUVg4T3pZLm9QQ+nE/mknYTJBIdYaaudnuNMAFni5rTb8qfLIvw7mS7brqFhoI GReB8jalS95BNYnS0O+vwYMEO1y7ee4DCkq1/Um0wlZOIeuCrJ4RafEbFCLZmuZM90Yd O/JDgFIGgoGuES5yHONW7UkpyUi5xb+5IL130hDeRyiDkGl92gMeEFtm53scf3f94h6x KlFWRO0YYvxF7VFuDdblSPnb6465A5sOPN/onUD48O2gq4JYF2NwEFR63pLaahm1iSk5 EHWNlcv+1z0fu3UYVXcN7kIVW1ZX2tgWeXzr72yPI+gnaOswKhwNMUZleEq0Govd7avs cnlw== X-Gm-Message-State: AOJu0YzeSa37CCidwnn5Y23+QrgVmL9HkgDnz2VNl9YdDkRAcTRWtf7J HjaqsVDJiv1cYPt0BIqNbcTnbA== X-Google-Smtp-Source: AGHT+IG8xnTwlDvRtAL4fQiYcDiBP4rCNQWClFYM4caq3KQYqXYKOXAxVngsN9hzhjRjKjwKQB0C3A== X-Received: by 2002:a05:6830:2012:b0:6b9:c4b1:7a86 with SMTP id e18-20020a056830201200b006b9c4b17a86mr6335137otp.3.1695614278969; Sun, 24 Sep 2023 20:57:58 -0700 (PDT) Received: from GL4FX4PXWL.bytedance.net ([203.208.167.146]) by smtp.gmail.com with ESMTPSA id fm1-20020a056a002f8100b00679a4b56e41sm7025387pfb.43.2023.09.24.20.57.52 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sun, 24 Sep 2023 20:57:58 -0700 (PDT) From: Peng Zhang To: Liam.Howlett@oracle.com, corbet@lwn.net, akpm@linux-foundation.org, willy@infradead.org, brauner@kernel.org, surenb@google.com, michael.christie@oracle.com, mjguzik@gmail.com, mathieu.desnoyers@efficios.com, npiggin@gmail.com, peterz@infradead.org, oliver.sang@intel.com Cc: zhangpeng.00@bytedance.com, maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH v3 2/9] maple_tree: Introduce {mtree,mas}_lock_nested() Date: Mon, 25 Sep 2023 11:56:10 +0800 Message-Id: <20230925035617.84767-3-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230925035617.84767-1-zhangpeng.00@bytedance.com> References: <20230925035617.84767-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: CB9EE2000D X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: h1my4uxep1gbk59j5r5uxnsuqfcfdcpg X-HE-Tag: 1695614279-461408 X-HE-Meta: U2FsdGVkX1+wXJlVU0qsN89XZUgGU/Nbs9n+B1iG4BSKP11ez/oDDz7iTYEO24I2GSbuFr7ThAHeid35yknLczM/htImldyRFnwWYv+ixIbM9aHtuRPIYoTm/AzcGp1Rel6zr02o3U9io4DQxp86IQ/ZUslufE9DyXezKlJhiXimV75Zq7qpZmrwWi0Ts9hPW98TsYdxuqBzttsf9BhhZBVNUkRwRNveXQY2Sso8e6AQDGIjVILTzU+6IZ725AM3cxba9cHVQBsl0HbmU4KIi6HiIjpGBsRYH3RaBSrZSMDJdSt5Tzuxa9h3jQ1gk8PnfLqWjaRZR8BR0EmOidwCha0MzYpg9CT/QK0DZlGVPx3kdpdgLqz3auZiOnOi094TndLvxix4QNzjN5YG4U6nnus4KwOcEpi6kARc4fpAXDx7mJKCAllqxN6r2XgfC2WQwaIpGzLyM7j56EZFaQ+0s3uug+wWph6fynPWt8N9jIosXdMBoc9/Ox78mQrCP25U01waDMO8/nAkAxu1IAzLN/07hPdnIDh3UyQx5oWAe2iXcWTb5bCRa+CUrG3pzca6VkKQSDrmtGaDc0Dmwg1T0zUnguKgjeOekb0GR+N1pq1hljxbatdcuyTEkWsFA4yQVUL4cIjadBsbZkbNrMiKYX6pemZJ0P0KI/TuAz96VUMoZPCj9Anvy8HnXVyQU2fMYLrBNhfA1bLpS/OfwQtRqkIfWA+dKYHk4uLJbWl65sxs/1zdq/aa+fZPiqwtarfecXFkqVXcMCiU/gPTGv2MAabqH1lDUVQMosw+aJ1ruVhk01OtjmZY2SyMrxU7hMd0iNTtPiSRUqEgCGkNxW02yVo8P/6lGXthTrFR88eTaxXTGrLUslSiPhpNDjK/r4BM2kWseWFBhb51dTyD8KCsGyjCjc2Un5t2XXd6o1tuHPfJ8gqg4UIO9utWVS+H2+ybm+K4C54RxMHWIGJ9UKY jVhV1jif +IGdY5ThlZyFVxRGtdZw/B5FEj7I+isFht08IA5JO6MJL2XZtF1Z5viq78RrnyWsfD7tALFyCo7Y2kBAiEdCHx9NJP7bhKXF7cpu5W39ZBSjiHNBAIVqJbH5Vpajp8wZTPTuWW9rxt0pq+LV35GMneue2pQW904YVl7ya6Y17awtC85KAImTly1IvOQuoQ3rO17NfPBkgAs/yabI9MrDl0f1tw1MqI5xaSRiOTxWUCz3IXkSkReZCic7baOC75+l6N3AmUgiFDz7B50s0TSIdl5KX+HztyIb4RfKvH9wHKba+ZMGl1xZojPLKyuJBHMWWrdlbju5uDQKmTjCmCoOgZABc3cDpao9hF/pMA6jJOMLVUCA9+AUtM4MuAy8E+inq21QEiQrCagez4Y2JccqcStVw7zxUiyJ3idKOETtspekRwPyEIFVQQMRZiwHv7p3wKwB+1wc7uDpnNXHHDLxtR6xLHg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000372, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: In some cases, nested locks may be needed, so {mtree,mas}_lock_nested is introduced. For example, when duplicating maple tree, we need to hold the locks of two trees, in which case nested locks are needed. At the same time, add the definition of spin_lock_nested() in tools for testing. Signed-off-by: Peng Zhang --- include/linux/maple_tree.h | 4 ++++ tools/include/linux/spinlock.h | 1 + 2 files changed, 5 insertions(+) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index e41c70ac7744..666a3764ed89 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -256,6 +256,8 @@ struct maple_tree { struct maple_tree name = MTREE_INIT(name, 0) #define mtree_lock(mt) spin_lock((&(mt)->ma_lock)) +#define mtree_lock_nested(mas, subclass) \ + spin_lock_nested((&(mt)->ma_lock), subclass) #define mtree_unlock(mt) spin_unlock((&(mt)->ma_lock)) /* @@ -406,6 +408,8 @@ struct ma_wr_state { }; #define mas_lock(mas) spin_lock(&((mas)->tree->ma_lock)) +#define mas_lock_nested(mas, subclass) \ + spin_lock_nested(&((mas)->tree->ma_lock), subclass) #define mas_unlock(mas) spin_unlock(&((mas)->tree->ma_lock)) diff --git a/tools/include/linux/spinlock.h b/tools/include/linux/spinlock.h index 622266b197d0..a6cdf25b6b9d 100644 --- a/tools/include/linux/spinlock.h +++ b/tools/include/linux/spinlock.h @@ -11,6 +11,7 @@ #define spin_lock_init(x) pthread_mutex_init(x, NULL) #define spin_lock(x) pthread_mutex_lock(x) +#define spin_lock_nested(x, subclass) pthread_mutex_lock(x) #define spin_unlock(x) pthread_mutex_unlock(x) #define spin_lock_bh(x) pthread_mutex_lock(x) #define spin_unlock_bh(x) pthread_mutex_unlock(x) -- 2.20.1