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 B9F66C636CD for ; Tue, 31 Jan 2023 06:33:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 537256B0073; Tue, 31 Jan 2023 01:33:03 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4E7846B0074; Tue, 31 Jan 2023 01:33:03 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 360AA6B0075; Tue, 31 Jan 2023 01:33:03 -0500 (EST) 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 1F51E6B0073 for ; Tue, 31 Jan 2023 01:33:03 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id D373D120443 for ; Tue, 31 Jan 2023 06:33:02 +0000 (UTC) X-FDA: 80414126604.21.8A1B1C0 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by imf01.hostedemail.com (Postfix) with ESMTP id 406B44000B for ; Tue, 31 Jan 2023 06:32:58 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=lsNaAyBx; spf=pass (imf01.hostedemail.com: domain of fengwei.yin@intel.com designates 192.55.52.93 as permitted sender) smtp.mailfrom=fengwei.yin@intel.com; dmarc=pass (policy=none) header.from=intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1675146779; a=rsa-sha256; cv=fail; b=EUshHm1PySkBdm9meTiuzHmffIefya3uw50DGH6Bx3bsSMveUPV7Xad/dXYLFu4JQzV/dp e9v1u52wEtwb7fGX+LBbL5Fpe/9cgn7YRehF8YfYxIJCySoxy65dlbLcn6Z98/egTLGHxK ot2y1tyfK6SQ3pU5DqJddiVRBi/BdH4= ARC-Authentication-Results: i=2; imf01.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=lsNaAyBx; spf=pass (imf01.hostedemail.com: domain of fengwei.yin@intel.com designates 192.55.52.93 as permitted sender) smtp.mailfrom=fengwei.yin@intel.com; dmarc=pass (policy=none) header.from=intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675146779; 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=jgJlJyE4tITB+r+ZTgY4raGTF+TIetnAFvGy8pi9stI=; b=JGB5wWXx2Kmt7XrYAt0YD9sEhqSPG2hDoAP6wXUUSPLeRQtKA2h3J9KfFzc3v0zjcr4f1M N+8mvt2Q+nb0J36a1GKXpOH89n8LM/MIiKBvUxQc1hmmvh6lH90+gK0chyYvT6k9macGY2 FG7t5vzpyvGcq3d6C8Pfv2KHLtkMHpY= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675146778; x=1706682778; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=87V/siHsCUuOWuomsznzqc4Tq+MorJHtaJx7pm35rrI=; b=lsNaAyBxGX0w+pU8Y12s8yVYlqena4bSC1cJjyqnUJntyXwX75ktUZZa +4dTWQZ9+80boGDzKZYuNhxKE2ySq34U4Y87HZfjOnEiWjir/qxdNSpTi 0eIAouacnzAFd9UXvAJ8vnPThrL909Eer37s+xWm9DVxC5vvKK4og01R4 vrdLKbkvo2PuajrN80XfUEbClq51IiNDOGuk+gryQgE2Hp2t6+OVlZOYY 6NlkygAf27Eg+cM3ckWfhQCE7ciDbZ7HFmLgxjmQPG/Coz2ot2go7rIVN pXb4qm+jD0GHLqxOUXM/br+WPPGAD1C5GCy/RvBWSfIq8FJ0BhVLoUYPS A==; X-IronPort-AV: E=McAfee;i="6500,9779,10606"; a="325458949" X-IronPort-AV: E=Sophos;i="5.97,259,1669104000"; d="scan'208";a="325458949" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jan 2023 22:32:56 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10606"; a="614325073" X-IronPort-AV: E=Sophos;i="5.97,259,1669104000"; d="scan'208";a="614325073" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga003.jf.intel.com with ESMTP; 30 Jan 2023 22:32:53 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Mon, 30 Jan 2023 22:32:46 -0800 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Mon, 30 Jan 2023 22:32:45 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Mon, 30 Jan 2023 22:32:45 -0800 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.171) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Mon, 30 Jan 2023 22:32:45 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Yr/id6FjHcGXqa/6YpxbPId3FPb3RXeCy+NqcLXmYTfT/0LA4FDivuwxe5gURPaP5HY4GZsOX6WQDZa3L7gdQyMTz9B68Me5GD6TwALx2GtOdPUvbwM6pG4obsbZuMUhrSeukem5mXLnpFS7wLaEusmGBbWWrTpU0UODFM+WfLXJPLj01n+9svxGJ+VvX8EQCXS5i1yGJ5stkjaXD41ABU6pyFMXcjqXoB6T7iptfb8x13VCuRsnyiNe7Vfu1xgXAUE+Q6878avEgqopyx8tiP5jChWnI3I/ZWGcWyeA7f095aZgto3Ov7J/Pk13pHik9MX4sHtnm2DVChiq4S3SKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jgJlJyE4tITB+r+ZTgY4raGTF+TIetnAFvGy8pi9stI=; b=bnp7g9F3UTXVemGZQWJzCJjM2wdERtsLPkUVx4jbkEBJM6F7nB3rrEqk2RIKK8fzCaZpmhHeZ65lAr2D9wR1FndvVEOytfh6sCX2aC6Le+Wxqk+36B4Ku5GOOcAI8LldmPtaELB+slFcFuXaPpQ3xi1+HkVgkR5uCp7q0Xn0V8HnGKJFXAUHFhq/T7llr/FrlfZDOVdfynJYsZ40/D/bN8jrp2UOIj4400j8fauoHJzv1ON/8Blgg2ZwDd7NW2FHucEXH7Zx5GuoEIpx3z2Seut5nZO192VsPMQI9SniTWaif/5LstuVeAPfXsrrEgVh9TgjET4sytwvlmJOZKRGMw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CO1PR11MB4820.namprd11.prod.outlook.com (2603:10b6:303:6f::8) by MW4PR11MB6911.namprd11.prod.outlook.com (2603:10b6:303:22d::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.38; Tue, 31 Jan 2023 06:32:44 +0000 Received: from CO1PR11MB4820.namprd11.prod.outlook.com ([fe80::1531:707:dec4:68b4]) by CO1PR11MB4820.namprd11.prod.outlook.com ([fe80::1531:707:dec4:68b4%3]) with mapi id 15.20.6043.038; Tue, 31 Jan 2023 06:32:44 +0000 Message-ID: <9c2cfc15-96e1-89a1-859a-ae2d7ed92315@intel.com> Date: Tue, 31 Jan 2023 14:32:35 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0 Thunderbird/102.6.1 Subject: Re: [RFC PATCH 2/5] filemap: do file page mapping with folio granularity To: "Huang, Ying" CC: , , , , References: <20230130125504.2509710-1-fengwei.yin@intel.com> <20230130125504.2509710-3-fengwei.yin@intel.com> <87v8kns7gx.fsf@yhuang6-desk2.ccr.corp.intel.com> Content-Language: en-US From: "Yin, Fengwei" In-Reply-To: <87v8kns7gx.fsf@yhuang6-desk2.ccr.corp.intel.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SG2PR02CA0045.apcprd02.prod.outlook.com (2603:1096:3:18::33) To CO1PR11MB4820.namprd11.prod.outlook.com (2603:10b6:303:6f::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PR11MB4820:EE_|MW4PR11MB6911:EE_ X-MS-Office365-Filtering-Correlation-Id: 1a75defe-eba6-4fa2-0cb1-08db0354f5c5 X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7tnz3wFXpGCThyzDzvS2J6k0lh5MtcJoX1Q+WlSiMSu9e1rZISq+T31vzNU2169HmmFjU17sH0+br+OcPfo4OqbZtFy7eBAiDSxlJS7PoZOKACnLXSH/FMS50epatJ4XlgBMsWWsiQq8XGINQiiSH5+mohvDjdA9szV5rengvVgpfq2HU3yPzBEbDJkSSudw2dhBdZnxaHbczjdq9CzXIhzUU3A2qWWdefKB634Dr9TG/MGUdnh9KOxjQpZMXIbgq1rXT2FMKjRyZVrLMI9PNuYIyvpBiYXlJKEQDmBI4yPGO/MqTSTkCJrcXhaVlZco811NJXn1KfEOK/KQL9eezzY2l75bCyj3VaD1VKchfNM2wx1dHy92r8BOoILos05wGVWTMLYQecUE9UmnYf3/yNDag4fny9EeHnkVmUsH45eNOv6Xk9+r12DSVQLUY58IflPE97faBwdtVTqaY1HM7/Bbcl/UTN/G+/mIF5U576ifkp2S8V0thKfl5scGX+x6Y22LBcqfgVbCWdJU/cNQEhNq7f5Xw2v7Qr3kdbF1A3FToN/7/XysVSVYEDwyDJzF2sUl7qtELuGHfMPiryaCbMDTVYFQTERaFjAVmsF8Yt4uqVfXxppecSjhfNpffY1n6zaWVzKD8rZJggpFofUsu4aEiVRKQlxWBmhHr6vcQwSSqHVilXh6miMwmrLZyODC94mqc/mJG6qBk9z2xM543bkUvg+z0WYLmsMWEM0C0hA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4820.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(136003)(396003)(346002)(376002)(366004)(39860400002)(451199018)(31686004)(6862004)(8936002)(31696002)(66899018)(2906002)(4326008)(38100700002)(8676002)(478600001)(36756003)(5660300002)(6486002)(186003)(107886003)(6506007)(53546011)(6666004)(26005)(6512007)(2616005)(86362001)(41300700001)(82960400001)(83380400001)(66476007)(66556008)(66946007)(316002)(37006003)(6636002)(43740500002)(45980500001);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eFkvNXgxN3NHYmNoS2dTNDdxNXdteFRlbHhsZHl1YmtjN2RVbFdPSGdtM0lm?= =?utf-8?B?VTNGbTJNUmEydVR1WDc4TDNLN3VPYjVtcUlZQWYxMlFkV3JndXRIaTdsUjV3?= =?utf-8?B?dHhaSWU2WGNZcmhjaGNuOW5ZMGZMWktWVWRMOElIK2dPaHNVR1ZKODVMRHJh?= =?utf-8?B?b0hHbjRFMjYvYlFPbnpCVElJdHh3bTN6TExuaFBqemE1Mi9MVWF2S1hQblBW?= =?utf-8?B?N1BhQnNzMkRMYVFhU0Q1WGgvY2U3VngwejYzbEJjc0Q3ekd1dTJOQXZ2ZHJt?= =?utf-8?B?bEo2blpmMnI5UVppNjA2ak1zekFVTGQ5TGUzbVFyUmd2cVhVMzhHYXhsNlJa?= =?utf-8?B?SXNrZlpnNWJyWk1SVVh5dkFha3RaNUhNa3I1eFFQd1lwUnNVR0UzK25uU3c2?= =?utf-8?B?dnBKVzBQbE9lRmV1T3RCclM3YXVlaUNESVhpNmpuL25ocE9vMjBOTTA1R053?= =?utf-8?B?ZlpSNE53bUFZeEl6TzNmVkZGcnU4S0d2L3BMVzFxbTlnNDhLekU0ZWJLTEFK?= =?utf-8?B?VHF1QzN2UTRyVDVONU56bHN4Q05jLzgwMjFmdnhXdVRNcmlPSEw1ckkrUFlH?= =?utf-8?B?Unk2WEZlMmZVNXplbS9wQ05aL1A1MjAxWGt0VU9GUHN1TDFmQ2FzUGcrOFhC?= =?utf-8?B?dlJwa1dDcXZibmVQMjRqUG5rZGRiT1J5ZnNlUFdhVXVFU1RjK1JKbUk5Zmxj?= =?utf-8?B?clg4UDFoQWs5cWppYzNVM3UzWVF4QTNuZVo2N3pObXdUajNvYnRNcHZRMW1S?= =?utf-8?B?ek9ERU1lMHFybGtGQnFUV0tXNVJDUFl3L3l3Z3E4VjhJTkF2QXhUNy9MOUlk?= =?utf-8?B?dTc3MXhJTTliSlZucitlK0ljMm5EMDZramhYYnorWlV0bmxVVjk3eDNtZmJu?= =?utf-8?B?R1hTem5mZ3Y4VEErWXdkWXFHQ3NWV3puRFd2dkJ3YzQrSDZvSGtKd3AyeUlJ?= =?utf-8?B?OXBXOE5sdzBoWkhSRStOSnZNWUZGOEFkQTV5VUMxL0tsZlpCL2F0eXA4UUVv?= =?utf-8?B?ckRxdjFIcEZDazAydWU3aXd3SjVjTXFCUm5hVFNSd2JYdFFWWFBmdUJQNzNi?= =?utf-8?B?a1VFaDBqKzFyMXREU1RvdkE2TXhsanpubWlsZ1lxdmxpekIySS84UUNNT2lz?= =?utf-8?B?NWJGTGZwLzJrN2tnL0JsWXJsM05KMVJpWXdqMEVXSmE3ZGxlRHVQenpoMXo5?= =?utf-8?B?TnNYS0ZzcHE4dkNCWmo4ZExUaXdsWVNKWVNTa3ZZUHQ5SGlVeTZmU0lsOWxO?= =?utf-8?B?SWlOSmsrRGhCM1NFU0trK2RnY3hCTVFnYWYvWHZiYjlQUE43empQTWpDRk9Q?= =?utf-8?B?blNDQ2pRMDhQczd3Z01MU0d2UVJxdVhMUFhqUFRhUWNwL0VqWXZsbEJ4dXVp?= =?utf-8?B?SU44R1RKUE9NRUxqYWxBRnNWUnM2UkE3SzNQdU9iT1VMVzlTVHVGbXV1eUR3?= =?utf-8?B?MjI5bEZ0RGJMRU40NWcrSldrNk1zQ0xBTmxWVEV0V0JiYlVIWGRMRWw5MjJE?= =?utf-8?B?NDBMcDNPRmc3OGJSa01mV1BldnpXUmhFSDJpS3FkMlh2aTQzZWNvVlp3YnRN?= =?utf-8?B?TlFwUlowY1hWMUd4MUgxTUQ4dVYzZ2JJWDNmRU5UZEtaOW11bXZCSWhZVHNK?= =?utf-8?B?OFRJMzNnb2VGdEExVENHb004cUtIb3c4VEJJcEp6aW5UNldYNTlNVUQzV3BV?= =?utf-8?B?WEtHOTZ6WmUyeTdyYmNCT1FGTXhMSFczZ3ZWWjJSei95R0kzSkh6b1piRmFs?= =?utf-8?B?aDdJWHpTcUc3bjF6K1BsRUtzVFBjaFRoUmNweXljL3RCcVg4NmdjWGxlQjFK?= =?utf-8?B?dHV4UTdnS2poRytJbjY5VWZrZ3BlbFJ3VHBuTitrSjBCNGUyWXhoSlp5QjRI?= =?utf-8?B?dHVjckYyRHFrVDZ4ZEI5TFhDL3lTc0dsTFhLd09nT3AxQVMrN3lHcmVnL0Vz?= =?utf-8?B?VEZGZUxzWWI4a1o3bmc3T0g5T2oxWUp2ODFKMjdKaTR2U0JIUTEvV080UWg2?= =?utf-8?B?U2h0d3RTQVF3aWo1OEpFVFlndy96STUyWnBIOVBOUUhreTIyc3hhZUZNajZv?= =?utf-8?B?LzdQL3Z3b3h3ZDFRSjdkUGFPa0FRbHE2Y2ROOTl1MnFZditLUnVyYXJQMW5k?= =?utf-8?B?dzN1eFBGUW11Q3ZSeVEwNWRISm1vblVIV1l6M1ZJTzlvUEtBb1pVTHNLajE5?= =?utf-8?B?dHc9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 1a75defe-eba6-4fa2-0cb1-08db0354f5c5 X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4820.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2023 06:32:44.1649 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zTjD9CylAw+QE4SmyksC+strEd3VcVrnLVfh7DJhExXTuOKBWqZCQO3UTC3c375x0NjfjMkeJMAy45rLObZNHw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR11MB6911 X-OriginatorOrg: intel.com X-Rspam-User: X-Rspamd-Queue-Id: 406B44000B X-Rspamd-Server: rspam01 X-Stat-Signature: szcebgt3yaja8w7yrp9ecd4rypgtghbk X-HE-Tag: 1675146778-47594 X-HE-Meta: U2FsdGVkX18g0fqRtUAQcumVl0EhT+2qpb/qSWB8PfVYzy8HYV5ZYVLAQ64lDz8QVxziB0Y0FyjIksR/nAUlZfsj66saiozs0W64K0W1yD4wjHQD3r+2BjZgmi8UkURLGf56zhVDREnM61hCRh8Ofnx9scHP/PjqxdPmSq+2zWU+6HYGf4edFJ4xc0WK8LYm7YaZdw8VvNWYYUq22Y4KXub/SOK4FuE8MDUmTSO6un5GgDvH+j8WqlA9w8XeQBmBwW1N0jkekJ/1WWJd0Grlq/wLlF/jkTsUYOiX/XeRLdKfiVEEkRjzkyA42A63R5zuLgFqgBP6SlvwLQNB4hCoRKRbVR8xGdAQwQqloYu8BCl+p8mRCVNWVcBxfvWmT1jyVfec33kIbwyJIhee9GgfHSltWRpuJt6Q+GNZHhhr+U/ANHEKSppBCX3oAe5utgrLkotRAszVI1cfbM4YdmjRuYtfb5MgA1TOgpz1+c4QEt65MC4G7SBKeFgEaRTMQ409YIJqRbeKHKrursiFzopfUOKZlHgxkTUhsCQY+RuiALt1l6glrURLv/zblMedwWNf4r2uUOhvk22otKoqeS2BaQy2smNO5jXVtLkP+4KTvbwE8oS3GhHwnerZA0uE6NVco5nuoH5HbFpKwgcX7w7AX/AzWbX/oiShy/xiL51q5Dcl3W5nmcTToK7T51063igiCwDc3G28vUDpTlGRaq6e5m7pZnYAm15gyPsiHecfRRZeg5a/CcZNZz3R5pqiAopCNDT4OIe/h7SzZXRVo0TC4mJzvibb1VHIoyXCRNgje2+swaMwDX0/5cn4aJMJmqKwCnx59yU79347xOMk3udXzBTRyjGu0GzSkwnZiiHhnGshfJni4j52tJKlTwljARkwoPPGn9Gjk32PYTG5FIjIFE/oFY8MQ07oGn0ft7BOlZ7ng29e/cx7VTS5qL6TwwyHeH5KV+qkq/8uW2Emvr9 AM3RD4Ie FhjyDf8Wb68GUIe+mg3ZgoArNFwQLnqa3K5dN0SE+uUSlPebKJ/XxhQoYk0UOabZ6oQ1agQw4NNCqKNCF39UJiASAjgGFxlObB3G+uxeDoqUHyhtfODy3je7Cw2sKKykNBNCYQl6IrfruDnoY8v/meSPHfV4uaQ+v+aTh7s/boqf6VGG6csS18XlzmU1v/7JCrI/n5UGZqx69JBKlgdTcqM1bf0oTGJ+ZNVzF3qKaLFtrZcof5ioRycdyQR9fO6LykDiTeT/g7kvDcJYPqAJM5HyR9g0YJHamiPhvNIqa/1CdAhg3EvdhX3Dz6/MwK4gN5n6y 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 1/31/2023 11:34 AM, Huang, Ying wrote: > Yin Fengwei writes: > >> Add function to do file page mapping based on folio and update >> filemap_map_pages() to use new function. So the filemap page >> mapping will deal with folio granularity instead of page >> granularity. This allow batched folio refcount update. >> >> Signed-off-by: Yin Fengwei >> --- >> mm/filemap.c | 82 ++++++++++++++++++++++++++++++---------------------- >> 1 file changed, 48 insertions(+), 34 deletions(-) >> >> diff --git a/mm/filemap.c b/mm/filemap.c >> index c915ded191f0..fe0c226c8b1e 100644 >> --- a/mm/filemap.c >> +++ b/mm/filemap.c >> @@ -3351,6 +3351,43 @@ static inline struct folio *next_map_page(struct address_space *mapping, >> mapping, xas, end_pgoff); >> } >> >> + >> +static vm_fault_t filemap_map_folio_range(struct vm_fault *vmf, >> + struct folio *folio, struct page *page, unsigned long addr, >> + int len) > > As Matthew pointed out, we should rename 'len'. And some comments about > the meaning of the parameters should be good. For example, > > /* Map sub-pages [start_page, start_page + nr_pages) of folio */ > static vm_fault_t filemap_map_folio_range(struct vm_fault *vmf, > struct folio *folio, struct page *start_page, unsigned int nr_pages, > unsigned long start) Yes. I will address this in next version series. Thanks. Regards Yin, Fengwei > > Best Regards, > Huang, Ying > >> +{ >> + vm_fault_t ret = 0; >> + struct vm_area_struct *vma = vmf->vma; >> + struct file *file = vma->vm_file; >> + unsigned int mmap_miss = READ_ONCE(file->f_ra.mmap_miss); >> + int ref_count = 0, count = 0; >> + >> + do { >> + if (PageHWPoison(page)) >> + continue; >> + >> + if (mmap_miss > 0) >> + mmap_miss--; >> + >> + if (!pte_none(*vmf->pte)) >> + continue; >> + >> + if (vmf->address == addr) >> + ret = VM_FAULT_NOPAGE; >> + >> + ref_count++; >> + >> + do_set_pte(vmf, page, addr); >> + update_mmu_cache(vma, addr, vmf->pte); >> + >> + } while (vmf->pte++, page++, addr += PAGE_SIZE, ++count < len); >> + >> + folio_ref_add(folio, ref_count); >> + WRITE_ONCE(file->f_ra.mmap_miss, mmap_miss); >> + >> + return ret; >> +} >> + >> vm_fault_t filemap_map_pages(struct vm_fault *vmf, >> pgoff_t start_pgoff, pgoff_t end_pgoff) >> { >> @@ -3361,9 +3398,9 @@ vm_fault_t filemap_map_pages(struct vm_fault *vmf, >> unsigned long addr; >> XA_STATE(xas, &mapping->i_pages, start_pgoff); >> struct folio *folio; >> - struct page *page; >> unsigned int mmap_miss = READ_ONCE(file->f_ra.mmap_miss); >> vm_fault_t ret = 0; >> + int len = 0; >> >> rcu_read_lock(); >> folio = first_map_page(mapping, &xas, end_pgoff); >> @@ -3378,45 +3415,22 @@ vm_fault_t filemap_map_pages(struct vm_fault *vmf, >> addr = vma->vm_start + ((start_pgoff - vma->vm_pgoff) << PAGE_SHIFT); >> vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd, addr, &vmf->ptl); >> do { >> -again: >> - page = folio_file_page(folio, xas.xa_index); >> - if (PageHWPoison(page)) >> - goto unlock; >> - >> - if (mmap_miss > 0) >> - mmap_miss--; >> + struct page *page; >> + unsigned long end; >> >> + page = folio_file_page(folio, xas.xa_index); >> addr += (xas.xa_index - last_pgoff) << PAGE_SHIFT; >> - vmf->pte += xas.xa_index - last_pgoff; >> + vmf->pte += xas.xa_index - last_pgoff - len; >> last_pgoff = xas.xa_index; >> + end = folio->index + folio_nr_pages(folio) - 1; >> + len = min(end, end_pgoff) - xas.xa_index + 1; >> >> - /* >> - * NOTE: If there're PTE markers, we'll leave them to be >> - * handled in the specific fault path, and it'll prohibit the >> - * fault-around logic. >> - */ >> - if (!pte_none(*vmf->pte)) >> - goto unlock; >> - >> - /* We're about to handle the fault */ >> - if (vmf->address == addr) >> + if (VM_FAULT_NOPAGE == >> + filemap_map_folio_range(vmf, folio, page, addr, len)) >> ret = VM_FAULT_NOPAGE; >> >> - do_set_pte(vmf, page, addr); >> - /* no need to invalidate: a not-present page won't be cached */ >> - update_mmu_cache(vma, addr, vmf->pte); >> - if (folio_more_pages(folio, xas.xa_index, end_pgoff)) { >> - xas.xa_index++; >> - folio_ref_inc(folio); >> - goto again; >> - } >> - folio_unlock(folio); >> - continue; >> -unlock: >> - if (folio_more_pages(folio, xas.xa_index, end_pgoff)) { >> - xas.xa_index++; >> - goto again; >> - } >> + xas.xa_index = end; >> + >> folio_unlock(folio); >> folio_put(folio); >> } while ((folio = next_map_page(mapping, &xas, end_pgoff)) != NULL);