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 3C50CC6FD18 for ; Tue, 28 Mar 2023 15:46:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9DDF76B0078; Tue, 28 Mar 2023 11:46:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 98E8F900003; Tue, 28 Mar 2023 11:46:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 855D8900002; Tue, 28 Mar 2023 11:46:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 7747E6B0078 for ; Tue, 28 Mar 2023 11:46:01 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 46CC9409E1 for ; Tue, 28 Mar 2023 15:46:01 +0000 (UTC) X-FDA: 80618732922.14.A867CEE Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf13.hostedemail.com (Postfix) with ESMTP id BD70620018 for ; Tue, 28 Mar 2023 15:45:58 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=XadBAjmk; spf=none (imf13.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680018359; 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=7jIC3gUNOauWM9ga6qXOHTM4KQPWT4lzVzZrBrJLp1Q=; b=oYQQxNmHmMpgEdf3FQU2K6IwJWTHiz4PUhRtLsS4ai+FHuIH0qHY9mTk90NlOrESAgJ2Mw chStTSv++JML5D8VhALYVr98PvwQLTnAyFXX4hOlZoDk9qRJgjlmYHzsybh+w+3R1fvcpd NN8hl8Xro8CZ/vwDWymw0pyySJ6WOvw= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=XadBAjmk; spf=none (imf13.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680018359; a=rsa-sha256; cv=none; b=vmQgfX6vR150Zzfsu4ahVh3OmHqnsq5fiESd+46ss/aACQk+CFEtIIPaADjS8SEmbl+G7P 9OO8T7gBEm1yOtjxp+x4FLIdeToPQ2dG0xn3Fx696w/yVSJxJk7zkcUJaxiDwLnGlZi8NH usKBsRnbwmt33UFSqyyQxAzqIym9yZ4= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=7jIC3gUNOauWM9ga6qXOHTM4KQPWT4lzVzZrBrJLp1Q=; b=XadBAjmkszBzYAYmWzy+vOYwHs ftTrcROsJGhhCEJ89uRLqL8UhmQDaIyhwHvsbgRh2YbCi4ZYT3KPsH4oxDQEjOZmA6cKENmxbdAg7 GxHB6Edvr6p+gHZUevYIvZ9mNMfCNiMZgHhs6fMpH3POoJu0jPXiInPzYnO8jxD6i/K6fRtbpTQ+z ivq6WYO+cQcr9UsJkZV32U6KFPJo9V6+aGzx4NIWMU7jEUaiVP3pCpSWgotH7EObCZReh4FVFIVk1 oTua5IDwBughpq02F3BjBNr1mfvIr6+oRrcclQEoNcmZOKuPmFZEtRpb86AlN3ulPF+x7zdgOPbla UqqBJ+fw==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1phBWE-008YGZ-Or; Tue, 28 Mar 2023 15:45:54 +0000 Date: Tue, 28 Mar 2023 16:45:54 +0100 From: Matthew Wilcox To: Dave Chinner Cc: Andrew Morton , linux-xfs@vger.kernel.org, linux-afs@lists.infradead.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH v2 3/3] mm: Hold the RCU read lock over calls to ->map_pages Message-ID: References: <20230327174515.1811532-1-willy@infradead.org> <20230327174515.1811532-4-willy@infradead.org> <20230327230206.GB3223426@dread.disaster.area> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230327230206.GB3223426@dread.disaster.area> X-Stat-Signature: qac187ia3e78rn6zisoyinkpniw7xpc5 X-Rspam-User: X-Rspamd-Queue-Id: BD70620018 X-Rspamd-Server: rspam06 X-HE-Tag: 1680018358-729457 X-HE-Meta: U2FsdGVkX1/Y7Je47xKAt1lRuffeynJJQD0wW4TltSapdt6nXXUrCUEcUYnX/9ZiERE57kIzGiSfCFH+gtTlPnKyimyq2MC6cO+kBlMRKXzvEdXvkgBVNCRTJCwuEQddByFqnpSwiq3YuqN6/bb8ocaU+bXQ5R4a5wupXjKNnL7ZGswRDoA6d7qpZBBSubtcS6WjkLiyIlUOFlf3RiYMR7re0/hD79S+8u6g0ylONf/RDFj/sm25Kqwzsb7lpXHE+Fpmiva+GmXAjGQ92Y/pSQPoLyCwsijXn7LmiPoHhxOEOJVMcqsRNaI9m55JWrZ7w/wynkaYQ4FGK5nmaTDnrAnhnJRBlJL1fm0kxcATAjOInSKG9oVVJ9SJEb85Y0G5llA/TFbTlu+Y1kQlvYTJlPvlpt9lJpLSB5y/qxU/d3jOqCvcHeq7ZoeK0cCaE+W2L0KHCWPQUWVPneSWrU4owHTshNyVIvAC2BTtiekLBsacUHMHAhFB1FljgHp5NAxlY09rapJUvlVs9gW3+CwC05R8aVvCqTCIR+jzLQwgzYym8FNC/dJ9mS5zXVrv1fq7O697CTrT0uKtU53nOyH9+eL2/38HiFAhev+KlyRY6mN7uHJLnIAPzHSXVxYOsFa53oYqah82p5wYy8flHEZoVK3MGoMpBBnebr29B7OWtjhZbZ9fDk2fJ2qnTYaEd+YnOGv+hUacRRoIJKE0aLu/rQ+XMnlg3gGZHJjiluwoKixwY06U1zxA4HE21aErEOMkWpyjYoLJlo5i6mHr1e15DbpxdD8TDODbkEcZRh1G5HzWnS6aV5W5CjRRGZlYqojNF29g4lRLBbG7ZiiTjvbNAKOdCWAbH6ptShxGzIn+K+xBAIxHHKMt9cAY10e0btWXCy3PoNKRwo0Mr822uK0Vk45deJ2OkAdCNskBwqPfuHHH36kJi9FUXLIHeM9Lufr1DEH8q03B3teQ1O8HAkV D+vyZ2wo 6nY2RUelx2SQXoo5RZ2Jmpuj++uvRZlCQqAsORb5koa+206A//mjl866ZAauZ2j57eEt6Pu3IFSYRBXfVVnCpcdwNkk93VYnjfcd4rko3QaCXcJPox/D6cX8Qu2TXDiuXGKy9jJK0eTfalPazI6GKhOsHigzbSWST8SVvROFiStg9QKjUa+HnSk5BVvFc2kToiZkbZp8RW+fcw/M= 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 Tue, Mar 28, 2023 at 10:02:06AM +1100, Dave Chinner wrote: > On Mon, Mar 27, 2023 at 06:45:15PM +0100, Matthew Wilcox (Oracle) wrote: > > Prevent filesystems from doing things which sleep in their map_pages > > method. This is in preparation for a pagefault path protected only > > by RCU. > > + rcu_read_lock(); > > + ret = vmf->vma->vm_ops->map_pages(vmf, > > + vmf->pgoff + from_pte - pte_off, > > + vmf->pgoff + to_pte - pte_off); > > + rcu_read_unlock(); > > + > > + return ret; > > Doesn't this mean that the rcu_read_lock/unlock can be removed from > filemap_map_pages()? i.e. all callers are now already under > rcu_read_lock(). Maybe WARN_ON_ONCE(!rcu_read_lock_held()) could > be put in filemap_map_pages() if you are worried about callers not > holding it... Yes, it could now be removed. I wasn't too bothered because it's so cheap (either a noop, or an inc/dec of a CPU-local variable). I don't think we need the WARN becaause there's one embedded in the XArray code (must be holding the spinlock or the RCU read lock to iterate the XArray).