From patchwork Fri Jan 27 19:40:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Suren Baghdasaryan X-Patchwork-Id: 13119247 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 E0274C54EAA for ; Fri, 27 Jan 2023 19:41:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A7C736B0080; Fri, 27 Jan 2023 14:41:36 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 98D806B0085; Fri, 27 Jan 2023 14:41:36 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 65B386B0082; Fri, 27 Jan 2023 14:41:36 -0500 (EST) 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 439086B0080 for ; Fri, 27 Jan 2023 14:41:36 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 1A6591410D3 for ; Fri, 27 Jan 2023 19:41:36 +0000 (UTC) X-FDA: 80401598592.21.B65142A Received: from mail-yb1-f201.google.com (mail-yb1-f201.google.com [209.85.219.201]) by imf19.hostedemail.com (Postfix) with ESMTP id D554A1A0020 for ; Fri, 27 Jan 2023 19:41:29 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=h4z95aWq; spf=pass (imf19.hostedemail.com: domain of 36CjUYwYKCK8hjgTcQVddVaT.RdbaXcjm-bbZkPRZ.dgV@flex--surenb.bounces.google.com designates 209.85.219.201 as permitted sender) smtp.mailfrom=36CjUYwYKCK8hjgTcQVddVaT.RdbaXcjm-bbZkPRZ.dgV@flex--surenb.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1674848489; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=A97N+ZL4sr7Moa7VA3MaIfeszXjKUidgl5sbUl4VE3M=; b=o7ewt+RO3I1mORsM9bcDbLAqVhmA02Y1gYmJSdlaZj66manGIDPuq2Cw7bYi7w84Vq3BZl QePTBRERysG7GoXvc+ehuQZ3MxONNugu0HFgYLiPp8ESW3xMJco2CFfn37wOJ3p+akA8GV ScxJi4CxbNwbXqY5JepJu6MMSgAGNC4= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=h4z95aWq; spf=pass (imf19.hostedemail.com: domain of 36CjUYwYKCK8hjgTcQVddVaT.RdbaXcjm-bbZkPRZ.dgV@flex--surenb.bounces.google.com designates 209.85.219.201 as permitted sender) smtp.mailfrom=36CjUYwYKCK8hjgTcQVddVaT.RdbaXcjm-bbZkPRZ.dgV@flex--surenb.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1674848489; a=rsa-sha256; cv=none; b=YP0N98FAP/j1tgVRLS5vPYM0UMCENHorbooc+tGdufitieB9sR250kK1WQkvyM64viGYYF sfHf3P08xgYCpQa9NLyaSRP0MhAMA24l12txqSGkX+OW4PXs5gTj/ENAVSQFIijOxrp6Vj O4d1lYNp84/lMOc1jXMuI91qHkI4R6U= Received: by mail-yb1-f201.google.com with SMTP id b201-20020a2534d2000000b0080b87d910a2so6434807yba.21 for ; Fri, 27 Jan 2023 11:41:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=A97N+ZL4sr7Moa7VA3MaIfeszXjKUidgl5sbUl4VE3M=; b=h4z95aWqlTijLuw2+pa/O521iwctvYJ/JE9Gk94Om8JNdm1J4qRBJ1EfNZDOaurfUb h0xAr5ZA79m4jhsd5KmptV8L5YTVXkJEqIIo06fTcAgDWyf2Iw1unXEy8R6f3F+h7n0/ eKAno27phPvhqEsCndY+cAQm1TD4BuL7gONpQNAXYFn8Kf2q+ZhvCxmCxJsT4hK4blKF lDmG8J5RutFJ9mwfq4DqWgfTIN8+TeptwgRlAF+qB5k0K+pf2NR8dkIUNhEjxCEKvwc/ GAm3buayP+cfA/HX9e16HQfg7j+WzzAIFSLNgZD3Zm/44+VjSwN/Bplr8AdUjUNKklkq c5Vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=A97N+ZL4sr7Moa7VA3MaIfeszXjKUidgl5sbUl4VE3M=; b=b7CInATUXI8aUORtO//R0JTI7+2/Zg1/XN7fNg9CrBTILO17oAi61TxLgAhhGAzmL9 bhDE23wfftkMKIZz4sc6i7KxjWvhpupniW8MoEMbGWWvqkVLhfkmdqAPsAbPpp0qmMsS YGQ3fATWk5w3cep3nhutPeUbO7fgFN7tY3kvfpHclAYP51BFytvTqg6IcosOZte5aInD 3sjGBg1L+mpwXdq8tbO0T2DTZV0RLdjhUmFE0bh/PMWqJ+yBUTomv+lUBJ0PiQUlpwJF pNYnkLF5Ke3SyQH37GubXO3O37rQnoh2/aZI3ySOLAQGbo5R8VPYut13AufTzWoyykPX qo5w== X-Gm-Message-State: AO0yUKVtGRYRWKunQbmgat4+u58WjYOf/ED5QsHEh44uJrFr/DdwA5P6 kaHmnT69bjgM6hdpFCUeiCALB8W8t20= X-Google-Smtp-Source: AK7set8r1BYS7Wv/oAXgdJ6+dIiQhgZ/QiambSorQvdFTePlCpS2jC0PmTUUP3dVFKS1ORR7IfLO9gpuOYg= X-Received: from surenb-desktop.mtv.corp.google.com ([2620:15c:211:200:4e19:be9:c5d0:8483]) (user=surenb job=sendgmr) by 2002:a81:9bd6:0:b0:509:5557:c194 with SMTP id s205-20020a819bd6000000b005095557c194mr892323ywg.449.1674848488954; Fri, 27 Jan 2023 11:41:28 -0800 (PST) Date: Fri, 27 Jan 2023 11:40:43 -0800 In-Reply-To: <20230127194110.533103-1-surenb@google.com> Mime-Version: 1.0 References: <20230127194110.533103-1-surenb@google.com> X-Mailer: git-send-email 2.39.1.456.gfc5497dd1b-goog Message-ID: <20230127194110.533103-7-surenb@google.com> Subject: [PATCH v2 06/33] maple_tree: Add smp_rmb() to dead node detection From: Suren Baghdasaryan To: akpm@linux-foundation.org Cc: michel@lespinasse.org, jglisse@google.com, mhocko@suse.com, vbabka@suse.cz, hannes@cmpxchg.org, mgorman@techsingularity.net, dave@stgolabs.net, willy@infradead.org, liam.howlett@oracle.com, peterz@infradead.org, ldufour@linux.ibm.com, paulmck@kernel.org, mingo@redhat.com, will@kernel.org, luto@kernel.org, songliubraving@fb.com, peterx@redhat.com, david@redhat.com, dhowells@redhat.com, hughd@google.com, bigeasy@linutronix.de, kent.overstreet@linux.dev, punit.agrawal@bytedance.com, lstoakes@gmail.com, peterjung1337@gmail.com, rientjes@google.com, axelrasmussen@google.com, joelaf@google.com, minchan@google.com, rppt@kernel.org, jannh@google.com, shakeelb@google.com, tatashin@google.com, edumazet@google.com, gthelen@google.com, gurua@google.com, arjunroy@google.com, soheil@google.com, leewalsh@google.com, posk@google.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, x86@kernel.org, linux-kernel@vger.kernel.org, kernel-team@android.com, surenb@google.com, "Liam R. Howlett" X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: D554A1A0020 X-Stat-Signature: 98c94x73e676cy4sbb7m4fph4enyyiqc X-HE-Tag: 1674848489-653444 X-HE-Meta: U2FsdGVkX1+slT72ma373G2z9ucDu2OCoDs6d5ZngN8x1YNU/utGr1m6Gr7zMaQUfzTppKCTJpe1HgDdWvCHTp1pzf+xciDTAKY6GzRJGax2OfHnsgaL8sMuZXhwwT4gpN6Rmba+jg9uPxQuXNvqvCyOmSYwmZwpDmjw2TBIHuQQOCjDDeYQfEkGdMoDYEB/LLtgzf1bG6y0E9pBMDFE5rauE5ZhpVmiqtwP/bHiSLpuVou8bP5NGWkTKxdH4gfp7B6VsoVts4qsu7o+PXVSpTE+UpA4FUmEYB+nzimlg2vEsVViIHJ5P9BItILSa4nqruLC2WUWfN0BodEEYxSQds0mRaEd2Zo2/Ndb1X3BJ7mjJr51pVFyEsVMfGdJ33G5Yn6vwTg/Rh6dkOv6pYO2kA41WgOAunYHBHKBWYN4kBhx8F54TzPl0MwvHIeSlgTwJZaS8VsgL6H9b342q6Pn9fx7Y2Wm67/Kl+ZhkIKYaxvgALAhG3cj5N27S9ulw9HxvvU+ftFA329UulB5cFiKOfLdQ9fMBvY7HEIBSbP4y4kAtmVQmWU8U3026+z6LpvmfAC0KdeOD8/EnmqQYIcW3o/z+XoATijmflMzrKQhZhiI1kXCXQoxTH3ZnyLHW7dMn+Y5HlFJMbGv5mNpOeMoiOoV0qz/QV4zFjMv8n6pmfk2scaGSdhNkH0w1x5cZfSbQufFsGYqcWIc+18SqNUXMQm1XyBttWn21uM4LNgrZ5FVXetbhfjBjtegyu9ooqDPKG4rlSacaybqXCV1dhvWW9sLqdEBUItxP/G7eu0j8n9DQkQ/gdD3StVD287q1D+I5S0eCYGkbdAVJzn6JO7CSvUxlS1eRG1cJxuWEpYRkq3Vtknbih56LArLmEgXZMPz4SEsTRR4g2MGUTT0Xv3d+JJe3oCYFDtqjW7QtA8pWE6UXW1PupQR8kl/1Xf9+1I2of/4ROWoTaWW/9UAnRJ iZyI7N6d hj3wU16JJ+Budjrba9X64/WPhc/qnnEqLmXXpJJtJnudMmNvYsRK0bGDg6ondjkTBjT4P1MpeyQ92n0g1pDrN7tQVGydzL5zIOfq8Ncd00O8bUIbWY0w8N61RS3ojk6MtUWgc8LhjDsSz12X6hFzg78zY64cbOIMExq1mWpuCk6QNCPCOnO8qRGL4Pvl1KDsQH9GuBLAu5AM7M3VNMzVZ5912WwHS3+M7F4rEyKeWfwpVj1TNKgNorJtuzhz5lAvPTl9uKnp1+VyRzNIJ82PtJP0bvBLiFVhbEqgpG3lLrSuUfVJnFXwbqdt/Fa1/ymrxixffyHhC5OAr/rgoZrinAaf47EGCNFmHznmHapAW65z8v+JAfF9CAhbbEKMWeXy2DtMQVAd6F5oDTfKCH9WTM3qg9ar4EHql5qR53Nk3+l9RsE7d0UhLEshFtwFKojYvaDl6q8faZIvpfdOEBSE0CAT5H4ps/Jv00vxvYVLZwFnH/aolFcGkM85m/Y/h5tWxRS+vrbG6S9jk3rRcqspGdk5C4uiU+34NUjYOlAXDBXX2aDUe6IUG8LagftjaGKLPbNa8YJ2CTAffmqa5LJ/7W8EJ+RIubtqsIpn4t7Ca8jmcrx0+o3pgIGyw3y3BbpwheX2mPSlB11Xpl3Z1qlGDI1DDQInIXhTEFTzMG5s2wdP68aigh4WJyMMVqHzH38kpexTo 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: From: "Liam R. Howlett" Add an smp_rmb() before reading the parent pointer to ensure that anything read from the node prior to the parent pointer hasn't been reordered ahead of this check. The is necessary for RCU mode. Fixes: 54a611b60590 ("Maple Tree: add new data structure") Signed-off-by: Liam R. Howlett Signed-off-by: Suren Baghdasaryan --- lib/maple_tree.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 49e399e8afaa..859303d2da90 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -532,9 +532,11 @@ static inline struct maple_node *mte_parent(const struct maple_enode *enode) */ static inline bool ma_dead_node(const struct maple_node *node) { - struct maple_node *parent = (void *)((unsigned long) - node->parent & ~MAPLE_NODE_MASK); + struct maple_node *parent; + /* Do not reorder reads from the node prior to the parent check */ + smp_rmb(); + parent = (void *)((unsigned long) node->parent & ~MAPLE_NODE_MASK); return (parent == node); } @@ -549,6 +551,8 @@ static inline bool mte_dead_node(const struct maple_enode *enode) struct maple_node *parent, *node; node = mte_to_node(enode); + /* Do not reorder reads from the node prior to the parent check */ + smp_rmb(); parent = mte_parent(enode); return (parent == node); }