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 5F505C636CC for ; Mon, 20 Feb 2023 09:45:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D85296B0071; Mon, 20 Feb 2023 04:45:43 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D36196B0072; Mon, 20 Feb 2023 04:45:43 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BD6036B0073; Mon, 20 Feb 2023 04:45:43 -0500 (EST) 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 AED2A6B0071 for ; Mon, 20 Feb 2023 04:45:43 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 7C6751C67EA for ; Mon, 20 Feb 2023 09:45:43 +0000 (UTC) X-FDA: 80487188166.16.96FC029 Received: from mail3.bemta32.messagelabs.com (mail3.bemta32.messagelabs.com [195.245.230.82]) by imf18.hostedemail.com (Postfix) with ESMTP id 09B841C001F for ; Mon, 20 Feb 2023 09:45:40 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=fujitsu.com header.s=170520fj header.b=HfwtHH5n; spf=pass (imf18.hostedemail.com: domain of ruansy.fnst@fujitsu.com designates 195.245.230.82 as permitted sender) smtp.mailfrom=ruansy.fnst@fujitsu.com; dmarc=pass (policy=none) header.from=fujitsu.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1676886341; 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=8jOutu8Snpl3GZHRksRImCEI6NQPKVo5qp4nZAAklVM=; b=qlJ476Q/XlSZQlxJ05Xr7Hf51Iw3XfkErWN15guG6/5x333/R8dsNf2r2GjVO0DLoiFdr3 eivVOQELFnuQu49pJrbqGLf4HyWa+DtcxBb3uZiyeescYRkvbSnw4JGhLtEycyqaR58zeK ahco2bGl5xmyyYNy/BEWMMe1eYG+0Ko= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=fujitsu.com header.s=170520fj header.b=HfwtHH5n; spf=pass (imf18.hostedemail.com: domain of ruansy.fnst@fujitsu.com designates 195.245.230.82 as permitted sender) smtp.mailfrom=ruansy.fnst@fujitsu.com; dmarc=pass (policy=none) header.from=fujitsu.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676886341; a=rsa-sha256; cv=none; b=iBs5cDGpoJ78Z1S66GupUOtt1pMVBx3g3pGXmh0V/puDpo/MMTbSeq/nzqnoyyVwtE1oj2 xh4cbSQ18GgnCUmCp8fxYmtr7x4C+9qeVmTHWN1CD9Fc/nPbhkDWfhXaZrkHUGVwJvsiMl UtvtdTNCsmsCvECMHC4ifSC7JwqW30c= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.com; s=170520fj; t=1676886339; i=@fujitsu.com; bh=8jOutu8Snpl3GZHRksRImCEI6NQPKVo5qp4nZAAklVM=; h=Message-ID:Date:MIME-Version:Subject:From:To:CC:References: In-Reply-To:Content-Type:Content-Transfer-Encoding; b=HfwtHH5nTxMuUGb8i13Z+VL2DQjnyRAkkMnV4hd8Dqde11vGEQcNSxSWd8Fu3QZaj yRw577E5t94fjC2VIkbUcGGEP2gAr9AufliETuLlrDIJJEK+NfHcVv3paN41ze2ThC fRbv0L4D44s1WqmOn2Qd38B+TN+wNe4gnk1wHNHNQs2SaivpWASYEcLKMEZX4erWIc mS6CxrD9kOjIb449lp/rRe6XTsuCZB4qufgcVVdhmsS1+JEnuo+tMBHu25/6nRR9y0 40lGiIAS/esrzA/o994b0P4UQIVB3biQSAHP2zCiVyPpgnt4SToJL89ggbyC2cdTKl +94/Kk2wXrDfg== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrPKsWRWlGSWpSXmKPExsViZ8MxSdfJ8XO ywYI5whZz1q9hs5g+9QKjxZZj9xgtLj/hszg9YRGTxe7XN9ks9uw9yWJxb81/Votdf3awW6z8 8YfV4vePOWwO3B6nFkl4bF6h5bF4z0smj02rOtk8Nn2axO5xYsZvFo8Xm2cyenx8eovF4/Mmu QDOKNbMvKT8igTWjJmzr7IXbBCt+LSruIHxqFAXIxeHkMAWRokJRy6xQjgrmCRufb3BDuFsZ5 Q4fncBUxcjJwevgJ3E9E/LmUFsFgFViR9HrkDFBSVOznzCAmKLCiRLHDvfygZiCws4Suw61sY KYrMJ6EhcWPAXyObgEBHQkHizxQhkPrNAC5PE8UkfGCGW7WCSaD5xhR2kgVPAXqLn9XmwocwC FhKL3xxkh7DlJZq3zmYGGSQhoCQxszseJCwhUCnR+uEXC4StJnH13CbmCYxCs5CcNwvJpFlIJ i1gZF7FaFqcWlSWWqRropdUlJmeUZKbmJmjl1ilm6iXWqpbnlpcomuol1herJdaXKxXXJmbnJ Oil5dasokRGJcpxaxvdzD+7/2rd4hRkoNJSZR3k/DnZCG+pPyUyozE4oz4otKc1OJDjDIcHEo SvFp2QDnBotT01Iq0zBxgioBJS3DwKInw/rEGSvMWFyTmFmemQ6ROMepyrG04sJdZiCUvPy9V Spz3tz1QkQBIUUZpHtwIWLq6xCgrJczLyMDAIMRTkFqUm1mCKv+KUZyDUUmY194WaApPZl4J3 KZXQEcwAR3h/uMDyBEliQgpqQampY0mXErCrw/omjv2NT5aELev9MiR41fXvXsvcc5HP0BU+4 DHjw22mfG7ntxJbVbjcGvcciek6ufLa/9Wp/HVvNLWCPoa01ohFbE5J7Sw3zvUf/YMw96bq97 OzN/Y/KNx6vyVSkW3heZtj9M/lWLvc9XD/K/50g+Rx+2eS3u8krWO+GvzXfiHVPGPe4V6IsXq bN6ez+ZVXA58aavsI7rJLmerBcOBk2rqM6TjPH+WLuH2KJPynP1xhep2c7H/rxtW8bB9Tn52/ FLlhuZPFxfcO/dN8/jWoH3T3fqLXJ3WBIpuOD0pYFfNhDfbRVpiyhPbI7Wv5ai5vSoUPr2qvp vbP/f1L0nvxjff9uY6fLNQYinOSDTUYi4qTgQADVLACdIDAAA= X-Env-Sender: ruansy.fnst@fujitsu.com X-Msg-Ref: server-8.tower-585.messagelabs.com!1676886338!174575!1 X-Originating-IP: [62.60.8.146] X-SYMC-ESS-Client-Auth: outbound-route-from=pass X-StarScan-Received: X-StarScan-Version: 9.102.2; banners=-,-,- X-VirusChecked: Checked Received: (qmail 12857 invoked from network); 20 Feb 2023 09:45:38 -0000 Received: from unknown (HELO n03ukasimr02.n03.fujitsu.local) (62.60.8.146) by server-8.tower-585.messagelabs.com with ECDHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 20 Feb 2023 09:45:38 -0000 Received: from n03ukasimr02.n03.fujitsu.local (localhost [127.0.0.1]) by n03ukasimr02.n03.fujitsu.local (Postfix) with ESMTP id CE24C1000D7; Mon, 20 Feb 2023 09:45:37 +0000 (GMT) Received: from R01UKEXCASM223.r01.fujitsu.local (R01UKEXCASM223 [10.182.185.121]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by n03ukasimr02.n03.fujitsu.local (Postfix) with ESMTPS id C138E1000D2; Mon, 20 Feb 2023 09:45:37 +0000 (GMT) Received: from [192.168.50.5] (10.167.225.141) by R01UKEXCASM223.r01.fujitsu.local (10.182.185.121) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Mon, 20 Feb 2023 09:45:33 +0000 Message-ID: Date: Mon, 20 Feb 2023 17:45:27 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: [PATCH v10 2/3] fs: introduce super_drop_pagecache() From: Shiyang Ruan To: Matthew Wilcox CC: , , , , , , , , , References: <1676645312-13-1-git-send-email-ruansy.fnst@fujitsu.com> <1676645312-13-3-git-send-email-ruansy.fnst@fujitsu.com> <55bfcacf-d034-46bc-37fb-16d2875f6d62@fujitsu.com> In-Reply-To: <55bfcacf-d034-46bc-37fb-16d2875f6d62@fujitsu.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.167.225.141] X-ClientProxiedBy: G08CNEXCHPEKD07.g08.fujitsu.local (10.167.33.80) To R01UKEXCASM223.r01.fujitsu.local (10.182.185.121) X-Virus-Scanned: ClamAV using ClamSMTP X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 09B841C001F X-Stat-Signature: 48r1xby7xzhsi1tyoqgnunei43j6iopg X-HE-Tag: 1676886340-450111 X-HE-Meta: U2FsdGVkX19imhg1BAW9769vcIFxpduwassQcPVbOKBRiriCqtWy9xTtTqHHvVMsJRrkEDEIj57SkTJAfbV9J52yQVxiYUbcYVMAb5gXM1fpHFHR6hyFxnVmY2ShLDU0NVhoZk8AlVQhKpnb+D10abG1THZeB0CuUIhebUFeiw9DCRHFtDJ6XT1jgo9T+KfMFnSNy4ImQmRupDXAdAOKnSudJSqIsO2LvczcfSwF2yxCBa9N1oJau4Zar+VQTdmGWztj60kSEGEmrzyW1IpqhLvcFS0MAgeBT+x+2BWfVpkxocaJ5sugoUGKtlcdT7TsS7lhwNTCSYuoPL+tB68pU+rgAeCo1zbPYMF3FObNoaGIWAGcSQb3B1Nwwle0BDD9kpJ2n/fe/UXfYsIwYua9VywsDLNZ6Y7K4lTYzkhP4hhI7xvMyZH1fV+28MccpTezsPJ3dOItknzVz0VObiwhnBkacmJwtDXyNxr3/0rFjZ5PusIZjGjBey6H1hwewj6ji1MinG6+UgwRCkM8nY28S7DkB534tiHV/0EQdyWg5bRsihBFigFW3ba1Eb2g2II0munfIg5HujvqYHP7YNa6F6XObTu0p6dNrViBL1hXE1fWolH+jcUj9PGS2QfU8VwTBn/otaWsgafp9UGdCZmqIN0OV8840ysQB1bOihbBRlQ8Y2vXpK0w+n4bSV5z9VOozS8g0irC5tuGN0bFzPmHU0+AFIqZAWEC6hx1/AhPI0+Yw2Q99RYiogDy2uCT+eqwwAztz2xcmA1w4RayPBKvj/PSDZ5ohRICoIenGAM0e3lz9x9JMCJ6SMjqdkwiMrMLwHFQGed+GW1GTF14GgDJbFDZ0VSBqpqhKKo24fJl3XPYQKTZyaYHhOcqUG/hbwSgchHLTyRZs/Z6azCxGhgM5sknyFfEWJ+tVsC4VigZcv22sn7V0W+/XlTkj4NIpjYVH7wSqon22EFVG4HIQLZ oegIaDqc zsowTNQ28UjsIvFijdTb8BI0PiCXQPIv/MpBUz/nkfvJlZqIYet2hCkCpW6G8gY2xnw8cB/MuwtSFKrgnG2bbPZqcuF1sas6+64ATeZc7IIjamavNNOh1u2kI7qdSmhd4D9ThqAKtmeTMd6ejHZ3H7p1PwgCv5HOqTXMzF+nyrZosTsGtgS0dd7vv/hrCoqJ+RRUuKRzUQTWcItAFi/DTPbM2pA13L1t3XwOe/q8coY7U9AdWWn+b2TRfKINV7gfSJ/AMVdMq5R76+NQ= 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: 在 2023/2/20 17:39, Shiyang Ruan 写道: > > > 在 2023/2/19 2:27, Matthew Wilcox 写道: >> On Sat, Feb 18, 2023 at 09:16:43AM +0800, Shiyang Ruan wrote: >>> 在 2023/2/18 0:14, Matthew Wilcox 写道: >>>> On Fri, Feb 17, 2023 at 02:48:31PM +0000, Shiyang Ruan wrote: >>>>> -        invalidate_mapping_pages(inode->i_mapping, 0, -1); >>>>> -        iput(toput_inode); >>>>> -        toput_inode = inode; >>>>> - >>>>> -        cond_resched(); >>>>> -        spin_lock(&sb->s_inode_list_lock); >>>>> -    } >>>>> -    spin_unlock(&sb->s_inode_list_lock); >>>>> -    iput(toput_inode); >>>>> +    super_drop_pagecache(sb, invalidate_inode_pages); >>>> >>>> I thought I explained last time that you can do this with >>>> invalidate_mapping_pages() / invalidate_inode_pages2_range() ? >>>> Then you don't need to introduce invalidate_inode_pages(). >>>> >>>>> +void super_drop_pagecache(struct super_block *sb, >>>>> +    int (*invalidator)(struct address_space *)) >>>> >>>> void super_drop_pagecache(struct super_block *sb, >>>>         int (*invalidate)(struct address_space *, pgoff_t, pgoff_t)) >>>> >>>>> +        invalidator(inode->i_mapping); >>>> >>>>         invalidate(inode->i_mapping, 0, -1) >>>> >>>> ... then all the changes to mm/truncate.c and filemap.h go away. >>> >>> Yes, I tried as you suggested, but I found that they don't have same >>> type of >>> return value. >>> >>> int invalidate_inode_pages2_range(struct address_space *mapping, >>>                   pgoff_t start, pgoff_t end); >>> >>> unsigned long invalidate_mapping_pages(struct address_space *mapping, >>>         pgoff_t start, pgoff_t end); >> >> Oh, that's annoying.  Particularly annoying is that the return value >> for invalidate_mapping_pages() is used by fs/inode.c to account for >> the number of pages invalidate, and the return value for >> invalidate_inode_pages2_range() is used by several filesystems >> to know whether an error occurred. >> >> Hm.  Shouldn't you be checking for an error from >> invalidate_inode_pages2_range()?  Seems like it can return -EBUSY for >> DAX entries. >> >> With that in mind, the wrapper you actually want to exist is >> >> static int invalidate_inode_pages_range(struct address_space *mapping, >>                 pgoff_t start, pgoff_t end) >> { >>     invalidate_mapping_pages(mapping, start, end); >>     return 0; >> } >> >> Right? > > So, I should introduce this wrapper in fs/xfs/xfs_notify_failure.c Ahh... It's not fs/xfs/xfs_notify_failure.c, should be fs/drop_caches.c. > because it is the only one who calls this wrapper.  Ok, got it! > > > -- > Thanks, > Ruan.