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 22DCBC47DD9 for ; Wed, 27 Mar 2024 18:45:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 815C46B0083; Wed, 27 Mar 2024 14:45:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7C5A76B0085; Wed, 27 Mar 2024 14:45:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 68D206B0087; Wed, 27 Mar 2024 14:45:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 4A52A6B0083 for ; Wed, 27 Mar 2024 14:45:26 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 0A6B51C0CED for ; Wed, 27 Mar 2024 18:45:26 +0000 (UTC) X-FDA: 81943697052.04.0558802 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf08.hostedemail.com (Postfix) with ESMTP id 9E839160013 for ; Wed, 27 Mar 2024 18:45:23 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=FsHkB3Ok; spf=none (imf08.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=1711565124; 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=Jto/UBY8qFeuax+A/OGqBK80cikOQZ4LUK0jo01qdKA=; b=LvdUfcSoFdhXrkxr0FL1OK9M3hkd7q51fs69mn87GeN7L/NK4LJesiozKCwADDD+JZ53/5 oKkp/Be4uDEPjQ6pUNPjyOjhueR0G2fnQ7+sMaAnqP94H374SarQqDww+6unbsBhbFHwv6 ioKbvDkAajDC/bO4ZDgs8JvIX527tH8= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=FsHkB3Ok; spf=none (imf08.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=1711565124; a=rsa-sha256; cv=none; b=cX45CndE6ZFjU74T8+ByGKgoRWAQfAJXJu7owu6B8x7xe/0K00xvNDYfdfZMBlHMhPcFlt J7Aj+QcBMPwJgXzcnzKRLcIO76KP+BkVZ3H5omGTTxVz+KFx5Grqe59QqiwbUNc6h5hGZR 2z0Y8yHL9Wbb2vBUnT6PLUwBpjiF5VQ= 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=Jto/UBY8qFeuax+A/OGqBK80cikOQZ4LUK0jo01qdKA=; b=FsHkB3OkZbvW2lIRluP+DvQYvf oZF2Vx+216ffdZcTX7SPEY+DrhaoR16macUM0BQ9ipEBL7pt2KI1KrDuisYWoBe5+QdXSBIAguCug jVETiIojDCW3h2JAaMqm9Y7WcU4tjfJyqKwJGQkgZsXj6Ghb75RwIUPk2RFlvDniY3cq8OHmLrCVC GMMrX1c9UOcPqnUPrdbPwAXAMN/N2Km8/39X7qiw/oYgZNm1r082v4A+l5Hkeb22X300tTDg2k+x+ pimn0w+kw7PQkid5OR1tbpViET52ntLiFHV1DtYAbvRjBgOyLa6kcSmbplUC/xm73JgT75/JVJxrh Y9cTQbag==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1rpYGz-00000004UtR-2mcl; Wed, 27 Mar 2024 18:45:17 +0000 Date: Wed, 27 Mar 2024 18:45:17 +0000 From: Matthew Wilcox To: David Howells Cc: Miklos Szeredi , Trond Myklebust , Christoph Hellwig , Andrew Morton , Alexander Viro , Christian Brauner , Jeff Layton , linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, netfs@lists.linux.dev, v9fs@lists.linux.dev, linux-afs@lists.infradead.org, ceph-devel@vger.kernel.org, linux-cifs@vger.kernel.org, linux-nfs@vger.kernel.org, devel@lists.orangefs.org, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH v2] mm, netfs: Provide a means of invalidation without using launder_folio Message-ID: References: <2318298.1711551844@warthog.procyon.org.uk> <2506007.1711562145@warthog.procyon.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <2506007.1711562145@warthog.procyon.org.uk> X-Rspamd-Queue-Id: 9E839160013 X-Rspam-User: X-Stat-Signature: o6anz19wh1gnatyyn76p6e1pcpwu7z9d X-Rspamd-Server: rspam01 X-HE-Tag: 1711565123-45820 X-HE-Meta: U2FsdGVkX19j+ZeO5zNFN2W5mTauI+Uj4W6syFmkf6xiVBXGqCOTI2igoPDIYYNXxK4k58jg3zlpnDAKhU/3vuF3mP+o3Nu4XJUHG2qTqiePQvpSSW/VFICKxLzC5pUbAw/4b2fAl6fcLfpGm9fbUpxBVOEbgS1guE3EJMUvQEOPb5MYMuyJkdFqgYAFgReemzwI8gDYwLNN3zOoKV7/yiMBWxpOww5HT+mZ6RanE3XiLh8VhdwtjEJzFOR3ZCKlYFOEX5F5ThWlRzZ/fZLXz1YNNaPW4PqMt7TDBlmLVcLYAjMfWGWYYiHConp0iSxnxSoqEA/lrOplKyRO2xCuHbiM/SUrltcM+mp5r9auOy5TDwTT9Vses7BDjgtsv5GsksJzbDVys5qG7+ZrmOupZ60qdyJlx06tyiU0GB/Lj7NXhuBkfyUZdwfWubMsCDHsfLOaCYP6fuFggo+k1qFI/5GD0XOXVfDGGYn7GpsvHTe5vkmimAHX5bp+Y6t5oePRnaxsAfLRtHcYjUrNg93zNWfpz19cn3ng/AmLbOIiQJ2O3Pi9QPvFvFfr+t8KH5KXIiptxpGhWY0SrYIZg0kPAGbrE/Ltfd2lL+qOSDr/IdpMITXqW8NCQsAFgKOdqytIXOBw+reugStrOfxTDAUNW27IVmgF+87ZhS618XNuMe+pcTHPLTZndsl+QRqhCVAyuUmTcZzJx6XvYnXjqoRzVPgbMBRI1n/DjW2domLp0gaBGWWRWBEai/fwVsp/4Eibdc6iq9Os7MK9fSzTvXH17ZIe2o8b0rn3eJywjaqBn7rdGIokoud03ihMct4/sv+wznLqpETTlgBPkKH83oSVDVrC1iZ22nRxKGulhLfYx+VvcDD77vTKJUjTaLgd/+Q7niA+LiubhnpSXLpEHgBKOUa8HNnufCo914qY4/bPkREz/tKTR7Z+YaKT8G0c8YxqOjtCsl2DS4meos9T7M6 GpiNdlVQ TqAQDBu0cSPf1ML86nurtseGszR4LGVFVKHTNZPx3DbL005qaIj8SLKGdc9LPhKywoekhhONu4L9c0qPyiNHOFpkMDawSNeTU0nPWDOTBcRBJlsbjagkRRMVVjYFOyk5i2fMuxVyUkuMRLLvXWLv2EIZgvGmCGRV873chYBeyG0kwIGCFQQqijiOVGA== 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: On Wed, Mar 27, 2024 at 05:55:45PM +0000, David Howells wrote: > +int filemap_invalidate_inode(struct inode *inode, bool flush) > +{ > + struct address_space *mapping = inode->i_mapping; > + > + if (!mapping || !mapping->nrpages) > + goto out; > + > + /* Prevent new folios from being added to the inode. */ > + filemap_invalidate_lock(mapping); I'm kind of surprised that the callers wouldn't want to hold that lock over a call to this function. I guess you're working on the callers, so you'd know better than I would, but I would have used lockdep to assert that invalidate_lock was held. > + if (!mapping->nrpages) > + goto unlock; > + > + /* Assume there are probably PTEs only if there are mmaps. */ > + if (unlikely(!RB_EMPTY_ROOT(&mapping->i_mmap.rb_root))) > + unmap_mapping_pages(mapping, 0, ULONG_MAX, false); Is this optimisation worth it? We're already doing some expensive operations here, does saving cycling the i_mmap_lock really help anything? You'll note that unmap_mapping_pages() already does this check inside the lock.