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 18BBFC636CC for ; Sun, 5 Feb 2023 21:10:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6BAFC6B0072; Sun, 5 Feb 2023 16:10:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 66A566B0073; Sun, 5 Feb 2023 16:10:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 55A196B0074; Sun, 5 Feb 2023 16:10:57 -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 47B686B0072 for ; Sun, 5 Feb 2023 16:10:57 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id F12931C5B0F for ; Sun, 5 Feb 2023 21:10:56 +0000 (UTC) X-FDA: 80434482912.22.484E35A Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf27.hostedemail.com (Postfix) with ESMTP id A837A40008 for ; Sun, 5 Feb 2023 21:10:54 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=hg1CiB1b; dmarc=none; spf=none (imf27.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675631455; 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=otjeEFo/SDJToXrP0LWWRoXxWKYoByEB8N3Ut6KbeGU=; b=UdZpGhgMIBnqyrHswbzGpV4zgHHLgoHU5mzCQBdbUhH0csXbGh/KMbey7xqm+vW5MOoYTq v9/67zN1wTxw5BKYcmrar8hscAQJFvG1a+siLzEygJfTlrkN+Jm2yHWI+9aiW51ljNFE2o 7OxczlsGgRcVZ7HJcAk4muGARSf/QF0= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=hg1CiB1b; dmarc=none; spf=none (imf27.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1675631455; a=rsa-sha256; cv=none; b=cTtkHAZPbHYpNzceS7DEtbZgh2l/YdCBlWBOzc5Ys+G4a99i+5avu8QsREKvcssbN3b3BO RfIU3HmV3vwqfzpNXhrRTbRec2W2jLMu2xbHdDmPkY4gwsj2LbaReKnUNblmOAYeoM6PJf llt4NVL2m2vZnBgJOv7zDzz7L60c7oA= 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=otjeEFo/SDJToXrP0LWWRoXxWKYoByEB8N3Ut6KbeGU=; b=hg1CiB1bNbDtMRqV/PYwPFWrzf L36wNFSyuAFrSIWrSOst1aZZsGviFsa70ohYRuU7LlMlvPMY8SiQeloqQmv/9rnuP+9HD98XjZ+Lv 7akP1v+IpS/FYxJQZ2fdC5e8zMTbrhXXl7J4JBNPSDJ9HQYAEn2e/6so29jfGi9TemSvaSMu+SYGe d/awv55Pfb+LOGOg+soKrCQVauDYA+qalJt5E5sRZe6EIJEE5Kgmq5UmfSo+eUzyBvbkHyGP/mwuN h4pnkPyfgA7cDB512ZkeP8Oh20wPcfq9Vn9deNUfnYe80oiyTL2WoPEYt9A58aDkyrNwqgvgPvj/g FP4BSXFg==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1pOmHZ-00GE5v-BO; Sun, 05 Feb 2023 21:10:41 +0000 Date: Sun, 5 Feb 2023 21:10:41 +0000 From: Matthew Wilcox To: Shiyang Ruan Cc: linux-kernel@vger.kernel.org, linux-xfs@vger.kernel.org, nvdimm@lists.linux.dev, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, djwong@kernel.org, dan.j.williams@intel.com, david@fromorbit.com, hch@infradead.org, jane.chu@oracle.com Subject: Re: [PATCH v9 3/3] mm, pmem, xfs: Introduce MF_MEM_REMOVE for unbind Message-ID: References: <1675522718-88-1-git-send-email-ruansy.fnst@fujitsu.com> <1675522718-88-4-git-send-email-ruansy.fnst@fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1675522718-88-4-git-send-email-ruansy.fnst@fujitsu.com> X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: A837A40008 X-Stat-Signature: wep9yipbfgx5t75gnj185r36umgx1ozp X-HE-Tag: 1675631454-683343 X-HE-Meta: U2FsdGVkX1/kk9j/ZSx0ymCEfuUYn42gByyCBCLNKMhJK8n6eF3tkaG6n90qGM+aW+cU8Gsn0NWYLVqLygPR1JXJaSW4yX3VeBZolLL3Brn+abl7sOVqtsQ3VRsuL1wfqqNlposJyUH7vKKxEk7pWW5WyPs1bJfjmbTnnAEnzvHrOiJBg1ADD7j1J3X+Wbt3u8SVlPREQlSeMwQGCMYGPyMM82aGyI5oRlmyOttzc9q+oRV4bKJ+7DmmABoZLOqQ55WJIMdSnUhGceK6NXaogqlCZxIJNjlmB02P++/Nt63d1A5YeBMgiga4XCaxYEg5FiRacUT+zQWlsfSKtyvx8WqQ0XoMbtMTbUSSnduKxNvxnE59WKFjTHGV1v6w80pclEg60CmpN81wOPtTYO5Z4KjQR7i3oP5/fAU2SZvXEjOMt1NdZhZVxh0KkiXV0ByIcPOWENMt143dTmtoMq9dUMOfM/QDWHppJoCKUXRG2K8wbuw6z6cUjJ7EN7nooPLKNrqtgxkEyKGUjS0fiqvPyjf5+3cLVLzGI3/3vzjskcB/4sVb9nJxQx+3Ns19miw1vZ6bGb9leppMLmb0c74zE9WACXWyY9HkQfiSJn/AA3Ia2lRbVdCeYiZLi/8+XgSxhENnx61kV8NBakH9psNgmRtpz56y85n5k+eUdf3GPLbbzcAMVpkOg9Z98dCm6+4psO2aCy/bemQ0zj7mWmcE22x0wIQ91Iu4NWVsnT3gnuLa9H4x3YyawaEieKTPBaQBDHVNTVWMtqSA4N9/QTNnwEwJkglO7DI3k2/3EUrkD+1Xpqlp2eWvELlWjy4HAIhGFPopIUoqhaY79/2fQrnuzARGfXAiUtqa0cE+twF6Ev9+Yd2ZHtB7F7fX8kKqLZd8W2i55gqg0Dvgmt40LAabLOX763f0LwCqs0PxdcUeloAZ5qoAikJ3AhA89ijKZ5w9wy2ldPViqREESl1O0mg /trgxTit BBtcNCI2IHzWvNxz0Q3oLjVQdAea6tuEsIWdQTKGZIIT/BzmMR2PeyB4dntOCtzsUAiUmQG7A7fv3Knqku9ngBJty60lxBZ/HEYACmegN89i3nzyKePv5GBUFVWcNiw7kgiPtar/3m1xG4gqgxmZZcKnG3Wws0qxxiaKLo6wPN1HmrkKtsri331TV0B67oW4cS28SnDk2X7dsBeE= 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 Sat, Feb 04, 2023 at 02:58:38PM +0000, Shiyang Ruan wrote: > + if (mf_flags & MF_MEM_PRE_REMOVE) { > + xfs_info(mp, "device is about to be removed!"); > + down_write(&mp->m_super->s_umount); > + error = sync_filesystem(mp->m_super); > + /* invalidate_inode_pages2() invalidates dax mapping */ > + super_drop_pagecache(mp->m_super, invalidate_inode_pages2); OK, there's a better way to handle all of this. First, an essentially untyped interface with a void * argument is bad. Second, we can do all this with invalidate_inode_pages2_range() and invalidate_mapping_pages() without introducing a new function. Here's the proposal: void super_drop_pagecache(struct super_block *sb, int (*invalidate)(struct address_space *, pgoff_t start, pgoff_t end)) In fs/drop-caches.c: static void drop_pagecache_sb(struct super_block *sb, void *unused) { super_drop_pagecache(sb, invalidate_mapping_pages); } In XFS: super_drop_pagecache(mp->m_super, invalidate_inode_pages2_range); Much smaller change ...