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 90A2DC77B60 for ; Mon, 27 Mar 2023 19:38:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0B563900003; Mon, 27 Mar 2023 15:38:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 065EC900002; Mon, 27 Mar 2023 15:38:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E96A7900003; Mon, 27 Mar 2023 15:38:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id DAB05900002 for ; Mon, 27 Mar 2023 15:38:53 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id B6327805F7 for ; Mon, 27 Mar 2023 19:38:53 +0000 (UTC) X-FDA: 80615690946.30.7C3D493 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf11.hostedemail.com (Postfix) with ESMTP id 0747940016 for ; Mon, 27 Mar 2023 19:38:51 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b="zlXSV/Gq"; spf=pass (imf11.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1679945932; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Zc+wEmeCali3EDEVT6bHkmhGUYmQN5gDvTzjHAXSpfk=; b=Ni0EcMhcgrmOVYEBs9fBT2O2lHm3rnYIeGN0+0MhjbCm+Y7CSiFSoTQfp/pioE5V0VljJF 4XARy0b/HvKjWmaYSj2PcbAah7m52qnNM9ou+ukLDOPU8xADGzJgDhSRqJCA3Kbosgc9Di KbITiqutbXfzWSahlpTIteLeevudlrA= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b="zlXSV/Gq"; spf=pass (imf11.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1679945932; a=rsa-sha256; cv=none; b=srkSVNptmlDcA8BVkQDYkIke6jTkZR/tj43KoE5FR1b4o6LoWduaxvgIUSRQB4rsNE/mYK XPab7gzpfd3lM1Sbc3YVaKpUW4ucEACSoZTOPmgnphmy8Nmh0Y7o6FE1WKQ8/9a6H8JFCR 2giMybk46q9s9cgzH4/VjawjSp1nkdM= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 0F20561119; Mon, 27 Mar 2023 19:38:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 82014C433EF; Mon, 27 Mar 2023 19:38:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1679945930; bh=r0HeZUhaOASIcaM28uUQr17+6+5yM0ymsafE86MgJQw=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=zlXSV/GqNQ7Tl+zjp6XrXqtCg/2B+AsTq8V78JUfybAjCGfxGlINzWzTndemBIgoq B4VssiJ6K4dqq8nsmCjrkNpaBAB75+6fEdQVLVNmBFYEzHVLVDCTtC1ZYz/e4CI6Ln 2y7bp4/Zo9aeVv9FSbUMCD7ApjVWenCv4aZsj+8s= Date: Mon, 27 Mar 2023 12:38:49 -0700 From: Andrew Morton To: "Liam R. Howlett" Cc: Linus Torvalds , maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Matthew Wilcox , Suren Baghdasaryan , "Liam R. Howlett" , stable@vger.kernel.org, syzbot+8d95422d3537159ca390@syzkaller.appspotmail.com Subject: Re: [PATCH 8/8] mm: enable maple tree RCU mode by default. Message-Id: <20230327123849.f2b9db25baf367e3c77fe072@linux-foundation.org> In-Reply-To: <20230327185532.2354250-9-Liam.Howlett@oracle.com> References: <20230327185532.2354250-1-Liam.Howlett@oracle.com> <20230327185532.2354250-9-Liam.Howlett@oracle.com> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: y9xeh9pboeb8g5qnoafowza84y6pq86g X-Rspamd-Queue-Id: 0747940016 X-HE-Tag: 1679945931-779922 X-HE-Meta: U2FsdGVkX1/A5k/vgr3QTfUljs+F09lASwQkWO5i2oyMoM/jcjqB6tGh4l++5sH5OHr8KCUdKRfSxngTl+XG59FcCNAAIRCHbIXe0oQC6I9xzjnZLm9l80ejqDesF5TPzUD1oJtf4aDG1Ugg4bjua/E8mitnvth0ydWsU3UMzbO7nEHNCq5vX6h1+eG1qf9kbc26uxFU71xuWNgj4qPHJ7IBJA6gK5791vPQl2+AeE1LzIPlyqABL2+Pp7TkMTKOC45ovSGxfhe2P65dRALdNV9bKB8IvKqGO9rPzZ5FHqmV3JsTTms28JX9KCZ1dpQrmCNDrPPBJhWMx77n1ZUHURqImSZ/7ff3Nr8PW0GiOHDH1wOSUDyYIk0JMW34GU2XLinqpntY62booWo6O6kCMsIPOykTDamzyovWYOGT1n8RHdjHdxMSf5SIOd2ytJSuJHd/UDzEcbubE+Sl3elf84jfBn9tYvfzPKGYfufCInfkxjwa5b4mlI0e+ECnT6APFcOItdeiTK8hE7eagIzQj4BvwhQRLr2HnHo9qiGUk3qMPPL2yU78ujhTPb4h2c3xde9xKTp3TT7QLp8e6Z9TqaV2AW85nDN0OCEBUTace5rSwPrzOO7kWePL75CyME6mW2KnGjR0zCVlHl+VLaTjAOaA9jkbnZTv3D672bESY76anFay9GVCSDWXPIYeEPQJeuZ1me+aMg7bRfTtASHkARLuC7nQjhM2iWKrseG8wLlgleBW1IkJNSKL3cAHUGybLKol8fw9RIWAMlHJbXpk31aJmJZY3+1AwRzNeZmHO5zroRnVxJHWjLoF1Iw/FM8DCIGt7a8IU83TDBia7hDDOKIl70H5HZKLUMCouxPbo7bB/GCpqZlgQHZ1i/RfNdNfncsDklfURxiJjQ8pKe0lMn/XJ0fSqonkIZZqSmIw+4k0DuVYYP0PBf75zbhNfEEzIBveJRaEf32o6xuAAkF HPsbr5YJ zn/aD4+bJqHw/YLRkc0jYfWP9KMkAmeiXjeio+yMCnKgq+EyFQLvrpzSYrzG7XfH2nta+biDIxxW9TqoB+hbsA5WsHDTDWAQ9PvFaTwJJioSnsXOtvXX1doUtHjoJmX849+dF6DUEEa+ntxGRyD2S9oh/x3gWclmo7zVaEGz5bMafYuqWNe38PJFXxx2AcnMC0w7yccz53GAOichkdFmiHWbfoMlLn4leH4eBiPUlc/0hasmcPXuVD4j3lz/Ft1+G+r/C/UY2gvIJokv7Ubv5TBHKGJRrxZQ1xIqlOGq0gR1zA1ExR+AyS3GwsPSsVu4WjDDOa6uTSMBhISTw8Y6MD6w+7VsE1Agoo3JRXD5w/PpM2SsMPJrlhWnCp3Su76Vduh0HgFWJBImELjENH1NoCJyQN7K5zyH0bwE6QnBXW9WHr0Q= 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: On Mon, 27 Mar 2023 14:55:32 -0400 "Liam R. Howlett" wrote: > Use the maple tree in RCU mode for VMA tracking. > > The maple tree tracks the stack and is able to update the pivot > (lower/upper boundary) in-place to allow the page fault handler to write > to the tree while holding just the mmap read lock. This is safe as the > writes to the stack have a guard VMA which ensures there will always be > a NULL in the direction of the growth and thus will only update a pivot. > > It is possible, but not recommended, to have VMAs that grow up/down > without guard VMAs. syzbot has constructed a testcase which sets up a > VMA to grow and consume the empty space. Overwriting the entire NULL > entry causes the tree to be altered in a way that is not safe for > concurrent readers; the readers may see a node being rewritten or one > that does not match the maple state they are using. > > Enabling RCU mode allows the concurrent readers to see a stable node and This differs from what had. Intended? --- a/mm/mmap.c~mm-enable-maple-tree-rcu-mode-by-default-v8 +++ a/mm/mmap.c @@ -2277,8 +2277,7 @@ do_vmi_align_munmap(struct vma_iterator int count = 0; int error = -ENOMEM; MA_STATE(mas_detach, &mt_detach, 0, 0); - mt_init_flags(&mt_detach, vmi->mas.tree->ma_flags & - (MT_FLAGS_LOCK_MASK | MT_FLAGS_USE_RCU)); + mt_init_flags(&mt_detach, vmi->mas.tree->ma_flags & MT_FLAGS_LOCK_MASK); mt_set_external_lock(&mt_detach, &mm->mmap_lock); /* _