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 3B7ACC05027 for ; Fri, 3 Feb 2023 13:31:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B379E6B0072; Fri, 3 Feb 2023 08:31:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AE7176B0073; Fri, 3 Feb 2023 08:31:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 939C66B0074; Fri, 3 Feb 2023 08:31:07 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 7B68D6B0072 for ; Fri, 3 Feb 2023 08:31:07 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 2E49881074 for ; Fri, 3 Feb 2023 13:31:07 +0000 (UTC) X-FDA: 80426066574.21.07333B6 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by imf28.hostedemail.com (Postfix) with ESMTP id BD533C0010 for ; Fri, 3 Feb 2023 13:31:02 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=SqEi02TB; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf28.hostedemail.com: domain of fengwei.yin@intel.com designates 192.55.52.136 as permitted sender) smtp.mailfrom=fengwei.yin@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=1675431063; 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=QSr4Oswh4vr8aLz+jo96z4n8Y5ClHpM0Jhq8xjxsFwM=; b=xM3TTzEug35vmbkJBSDfXvUhJrayfCNVQokpyMgjHxlemqjIyIb59c2D99hejdnN1U86GT LpKV4d5JpgesPIiLj/33YKmL/4aZM+CEZ60vMSqs8ddW4MbL7F3xa+ONb1PtsGlItB6oNz 6Wx0d6Pm2sC+6U3+kR1mqP+LFwDkGiE= ARC-Authentication-Results: i=2; imf28.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=SqEi02TB; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf28.hostedemail.com: domain of fengwei.yin@intel.com designates 192.55.52.136 as permitted sender) smtp.mailfrom=fengwei.yin@intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1675431063; a=rsa-sha256; cv=fail; b=sS4W88VPvOSWZTmLclws04QqDxhfLYRJq2t15DgYhbfbZTnFBQwdD0L/Vo045/BCFuvw90 mpcwfxsvrHg5+XKPDZ4uiZ0tmDs/uzXjeai2x5IrXShlSh8X2SZM7OQ54ukZliXhkuROFO oXlpgJMEX5YK00gE6JthCgkdYwPZi7g= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675431062; x=1706967062; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=PuEYF5YlpGuzhKRDXwhJyXgYNAoZuXoYX1ruDH6OOJY=; b=SqEi02TBQ3XOXhwHqEM4PeGUuVGzQmH9blDeZNN+C4Bv/OV3XTF+RSUw 1azk0JnUIbN4oYYIkHbL+UxP2tgRnlLq5R9GpCymQyhObHLxRMgoITabC BBeg0SdD3Gl+WquLnA2ABckCJYMsvZMb92LoJOQhkGLOBOxHI6wyvhERC V42R685jDo7rUXu9+Q2IxMxkGNLbTosSjsEhpjJ4tdUF77u7cQQgRmdnB G1l/bAowGXXNQqgX14IpGrarmYHdITJI6ocQq7JOK+HzzLDGhJa9CYQiz X2uaepaB8x8YIfX2BMzyavNC6D+KQur+XNFHYvwhqztMHWamNEQqQEdYR Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10609"; a="308386526" X-IronPort-AV: E=Sophos;i="5.97,270,1669104000"; d="scan'208";a="308386526" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Feb 2023 05:31:01 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10609"; a="774336184" X-IronPort-AV: E=Sophos;i="5.97,270,1669104000"; d="scan'208";a="774336184" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga002.fm.intel.com with ESMTP; 03 Feb 2023 05:31:01 -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; Fri, 3 Feb 2023 05:31:00 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) 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 via Frontend Transport; Fri, 3 Feb 2023 05:31:00 -0800 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.44) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Fri, 3 Feb 2023 05:31:00 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=awOUv4L3OlaE71H03pcXE6D38bs933h4vZKgIh1USBWInIuYjgar6+N4QdS1wb9uoDwvqOyag21EFqSVhpTP8BFN4kxf48FnKZwZ/7SP3N6EeaUiJYY3qb+j7DWajZ9Q9DXmiKUcgEI3gPTHbRXCL3uvHIXUn7H9ADIFNsj64gfDOayzo9xmwioJiWFo7Z0WjY/lWQlBXPCy/Z0pFBzKeF/PIkpmrK4Wzp0VFObBGJ3uyGqsGrKO5tfXSVPO+CvKw+RLMaL/18xGYhH3s8HtjfNHJ1Jc7AIymEmvNXZPHYURLkuPATC2b64e1+YBuhsTWxO/og/Xw8U13P8C5jaxag== 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=QSr4Oswh4vr8aLz+jo96z4n8Y5ClHpM0Jhq8xjxsFwM=; b=gwc4eECH4fMtWfPGewIevkwKsiixK37/Hhx6S0tz4DYe+vanAlN7MDxewfqe+zwBtAFQxJWv70oJqufm19DwF4m3ZjxhJyE/YO6ZzPhYiKD6XJHk2vgM6XnFlVqmPBoYFcULKooiI6kSWIPheO9iQCjIG+n+vMdf/WUOaAWm8LQ1zymHGvAru4b/DevmYlwnHSBv3j4znkTzlRGEoPXkp9vxEznpeVj5kkjz7ECAWvWsz5oYvgh1TFlsNrqRZRXvsFk0iysdk3ZFIs4ny/SNWOz/ER815yhqjfcNMfBtr8ucYsbPWndlOzUnyrndGFORSDO1EPGsVzxzigxNSghRBQ== 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 BN9PR11MB5558.namprd11.prod.outlook.com (2603:10b6:408:103::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.27; Fri, 3 Feb 2023 13:30:52 +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.6064.031; Fri, 3 Feb 2023 13:30:52 +0000 Message-ID: Date: Fri, 3 Feb 2023 21:30:41 +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 v3 3/4] mm: add do_set_pte_range() Content-Language: en-US To: David Hildenbrand , Yin Fengwei , , CC: , , References: <20230203131636.1648662-1-fengwei.yin@intel.com> <20230203131636.1648662-4-fengwei.yin@intel.com> <5c85d6bb-f4bf-1969-8ec3-c16399e5d6f2@redhat.com> From: "Yin, Fengwei" In-Reply-To: <5c85d6bb-f4bf-1969-8ec3-c16399e5d6f2@redhat.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-ClientProxiedBy: SG2PR01CA0140.apcprd01.prod.exchangelabs.com (2603:1096:4:8f::20) To CO1PR11MB4820.namprd11.prod.outlook.com (2603:10b6:303:6f::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PR11MB4820:EE_|BN9PR11MB5558:EE_ X-MS-Office365-Filtering-Correlation-Id: 6ceb3556-75a3-4aee-2889-08db05eade9b 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: pLVV5wf5fSX2bDBhqP9fxW4jLjtHMp479GC++cBO9snnw6ECNZmF8ORvu/KXfk9bKC4f2c1XnE5cMojupyPITPLAqjCpUyd4bogNO9NMHmsWWuXWhx4HXGnmBGZo65/kV4U8eif9PP2i7M9BSmglBf+TxyDSlW4h1ee0p25VhdqXnnOKtRYKJM035cBAxwPdWR9QyzjGLFY9+hm/46Jo7MWqsTQj+Tngz0szHstY/IpXcPR2FrRh2j2qsUHW8jhSz3jcekeOKbRa2FDLbhKbZlW9DRKUXiE8EF/n0+YCQIMGj7vK4H9qoZENgQ3dRR1fpD5uQecTR/S2luJS1Y8Z9m6RXV1LKksoRLnFQ389+QD184ymlIM7UVhNqYpBd3wLacAjOAQCFN9JtNivipu8O6Ca2JecolBdXQH/n8EsQaGAHjzqFy/hUByE3FWTYCNn3o5TdN5ukpEIfau4TmVvuVW8PT0M64NXsZ/xkp6BxP7YdcAAuyezDWZMKIpPGwXHnQDNClvSv6JlNDPuKILxvcpoN+Zh7n4CFo3YmpR8og7GgWjm/1VAUBxH5oeilemvDmy7TuIS1xofAlk0+jhwo49d9eLu0KiCA/J8JnTCs18rauBCjta4CmZT7wEGX5tuYJQQla1tdqjoG9lKZ34GotJCu4CDYUxuZsathSPBqZjC+cg1pTu6f+PeareQLJ1zrHG+i7Jn7xS5NRGM/iKLypfojAlMJnz7NMrHAlbCvig= 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)(376002)(346002)(366004)(39860400002)(396003)(136003)(451199018)(36756003)(2906002)(107886003)(83380400001)(110136005)(316002)(6666004)(2616005)(26005)(6486002)(6512007)(186003)(478600001)(8676002)(6506007)(53546011)(66476007)(66556008)(66946007)(4326008)(5660300002)(31696002)(8936002)(41300700001)(86362001)(82960400001)(38100700002)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?M3BqUnlabzd0djArUnFmQ0Fkc2Z5UkM2SS9KNjlqTXdZcUxPM1hkQXJSY3hw?= =?utf-8?B?UDdPWDM5TE5oZXBudzUxdEhUNVhueVQ0VTVOWU9KVVA3bEdHdldMNi9NNk1l?= =?utf-8?B?aHlHeFhidjZtWlRHeXJFUG96c0tSTGM1YnpWcXR3ZFF2WHZ3NTlVd2tETzhi?= =?utf-8?B?UU9LTTI4OUtTM1MxbU1zV28yUDVLNEtmY1hFOUpBWG9uSmZRenJWWkZ2aXhr?= =?utf-8?B?RVREbUUxN3l0Z3JVR1dDYXJadFNKRkdTb3VrSzZsUXNoVHRqazFUREZVTy9u?= =?utf-8?B?R1gyNUNzQTN3cHg1L3o4bHkwVEF2VDNBdU9nSEVQOHRLZEFoR3RkR29PeWhB?= =?utf-8?B?VlNrcHQwNDh6Mjl1Wmx5ODlXUEw1bnA1dWFaOFlLTmxYRGhsZkl0QjBUT1VB?= =?utf-8?B?eEtwejRJb0pLQkJsS2tTdlNDdUJzc09PQjFITlk5a0ZGN3d5MHR0cjFWSEZ0?= =?utf-8?B?NERnbXl0T2hRSnMyMXFva1ZiSTAvQW5oMWVGSVA3SVBURk1jOXZRMFE4RGJr?= =?utf-8?B?UkFYZWxRaDNwbVdmeklFUlQ4b3krS1ZKSUdmcmlPQXlxQ2FyRm1QUXRTQnhv?= =?utf-8?B?bFBBd1VzSFMybUxVVjBJVUlHcHBta09MMzBXZlltOERRVlB6UFgrQXlLSXJx?= =?utf-8?B?U0Q1OU1jZ3R2RWdTRlVJdWJoTzlLTUowamwxcnErRmhzOVFrUWRNYUtVNnJx?= =?utf-8?B?NmZVMTdBVjBEZHZmNUxQNVhRWVZXQWVhcy85L3A3UVBCdUVEMlRkWDRmNnFG?= =?utf-8?B?eTZJbWsyRTkwYVRzbG9aNklXTGRvWGxCMHVBY2VnOHRka2hxM21tUkY1MnVD?= =?utf-8?B?SDRYN0x6eFFyNnh3U0habFdzKzlxdGZQQWR6L3NZbCtUWGl2a0RNY0pFMkFq?= =?utf-8?B?Q0F0QW1qTnVRQUJ3VXNkREtaMzdPaTViOWVCb0oyV0QxaHV4K0dDZ0k3Y28v?= =?utf-8?B?MWFFbzh6SWliWXhOd0krQjZxVlEvRWN0UXNzVkJjT1VZc2lqOXVJaFo5YzVY?= =?utf-8?B?MkorTll1dk04dDZCSTdNL2dzTmdmMnMvVVlISkxqQTFNUjB2OUFEWWJCYlZX?= =?utf-8?B?RGRSakJSSUl4dnVIWGJUWWFqMnREbWhHQWJ2MktySkdobWZsL3p2UkZMMTJM?= =?utf-8?B?SFFiTFRLUkpYMzB5S2I4SXE3aW56SDdVUHFtV3plNnZqbEtFRkp4TmlOS3ZE?= =?utf-8?B?eFk2SDNwaTBnZi96UGZvQ1R1Q2toRXl0Z1RJazFFMStHcllQZFFVK0NPTnha?= =?utf-8?B?Z2NTekRkbmw3QnpuQjRkSHo2UzFJazZmcll4Y0o2cmswYWxyNXlaenk2YUZa?= =?utf-8?B?UHpRK1JablNTK1prWmNWNklOSGFneU5Uc2ZUWlBaR3JmcldkYkhKai8wSmxx?= =?utf-8?B?OE04RkRJWXhrRnR1b20yemhOK0V2VzdXMnFma3ZsMFN1UnRHKzlDR1ZFZDBs?= =?utf-8?B?Q3JhQjU0UjVrUEJORlJkOXVobXcyR29VNDNhLy90N3k2S01oODRPcTRQd2Yw?= =?utf-8?B?QkVNUkRhZmJQc2wvVVFBcUo4RmpUZFUzbFZMN3FQbjFkODVBWXFQQlF6SjNo?= =?utf-8?B?V2NLV0pCZGkzOXVrRnU1VmNHeGVkVmpuY3VnZkNrSFg1eFFveVBrU3A4a0hT?= =?utf-8?B?a3FncUhlOU8xMGY0TFJhRG9JWk1NTm5ueWpFS0Q2cU1zalNsbWxYaVNkZVJK?= =?utf-8?B?aEtidXk1Z1Z5NXBUaitCcm9DMkk0MWJOa21TRTZGdHdNeldvcTB2ZWhEczVi?= =?utf-8?B?bE9Bb0RaZm1jTmNjYmFrb2E4WSs5ZWhPQ0s0Y1VrV01HNmxyRis5QWVpTitw?= =?utf-8?B?LzRVV2dUZ3NUcXNvZU5JMEJ2ZnpQall3TS80dHJFRGo2amxXd25lRnMxcmJ2?= =?utf-8?B?eUs1UVpQVmdiNnViUEtNU3BIcWt3OWhCNWtpS21INXM1WG1XL2tjTGFhM3pl?= =?utf-8?B?djN4WlkxQUtYMmhweWM0dHdNU2N5ZjRxQThrR3BIS1pZRTc5clJiWm1QcGlj?= =?utf-8?B?ZUY5SndvKy9OR1FiNFVLY0t0SVNxKzZNeGl4TmFDVGkyVjhGaGN0aW1MYzZ3?= =?utf-8?B?Yk0ycU9qTkRpWCtWRWV0NC9pcTVRSnpuQjh2Wk4vcWxCeDdtZXFXSlpZeFdQ?= =?utf-8?B?aXVuWXZzek9mS3BERlFYTHVoZVdVV2FuL1ZNbHB3Njl5V0xlcUphanJrQWRx?= =?utf-8?B?aFE9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 6ceb3556-75a3-4aee-2889-08db05eade9b X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4820.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2023 13:30:52.0107 (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: Wt2YSdo7T1zbRAqUc4v1VcdLcwF6J+WBwqnWe6TD4oDR98qs69Efplwe1Lkf1dVPs6NMuBoS/PWt1socIQ2TZQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR11MB5558 X-OriginatorOrg: intel.com X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: BD533C0010 X-Stat-Signature: akgibmek9car5p8rb4b5pfoe9xxj3tqj X-HE-Tag: 1675431062-853810 X-HE-Meta: U2FsdGVkX19P2G1yTGuiYBaVXcNyVMurKLemmp2Ndir7y1+vh7p9fUKXrJ4tac2lp7kj/bu+bjtLmL8ETQh4IF48gmfUshBuJ3/3b4/7QZ7IOvA5raB8aNAOPt43ukP9L+I0hxktLFSExR1TUG1cPaDtFQn2ApnuYYB0TYJQDipoOAs72HYTAsEwoWeyj6UbQveoowFldgrz2F0ZgGcnCthIzIZ42si0d3m8KvAmtsDaM8unT78d5SKLtoipW6kbOBpZVzn3WERLCY1lZgpjGu7wS9XuX/wk5RLenli+nkaqFPeEKEitOfdwW4AGY1voP6zwHkzF6+pS4Yt4TjtM0MPdZl5T10bpcuJC4KB0SFhkAIIX7Wmdl27zMVw8BFVpp//ueQAowp8INAXmLXMXoZbxiXxnfDa+ib28DoLT2Hf2v44lKs/ScPM/jnboeEmZV0oN+I7OGoa6SPCNmQmTgK90zd5oGVctw9WiuKMb+vS8YPVSyqVLaLQ0+IHAGWyk6THqlbqioodXPw1TXlWDujjre/cX98g8OiRxVFDMQwcqvPe1ETN53YFQu8gc0pcP4amaN3gDYmuoQ8u0cZCOBmBqmAn+rTd2k5qRWm1SRYNOQZYWSfaJI6l8KO/WRL/yJV3ugMWfAAuoLbTna8hMt6dKgImtaW1ZSAC3Z2v/KCSpZ18vKBG6U4TwY4+BvK7bmU8m/zrHwjSt7hfjWNeX8LfrJVD5OsOT9U0ysNh0/ySKqvowrpdIzxeBPpfcFEZpF4Bhc0D7J/WYYfu5JpWgug32ecGbqIjvKhjeRhzLpmY7D5ho4nrcG1OcNm1PQvwVR5dxbjVyq7PopA9UCpCmZavHR9GWXLwOQhwkkz5unxC1GIy94m6aiV/dhCDxaT+efR6gyetWAfdBCXBleHrtoFuYMl/uTJkVhf6nuqcinLeIGCO9v+pqRxlliKIgU4ez62RZQe45Lx8c7yZZ+EV TgB4FKuJ Z+vTDPt1iz3NfK/nKPyIOC8+4kp/77lXBcH+sCIHcUchnAVV0YMBv1nE/r9kIJ5CEd8wxePNaj8T3JGG05+biqXR9g5F6YKUeNqtj9EScsYYj7yiYrQkVtrLXn6xXLl8OjmE3YWRjUHHsRosCT5BDZNqWxWYzhhn4aFroembN6gy7JIqkD9jZmvUQpQ98GcBNa4ZOCyCrPnvMgVBCpsWi/TEYHlEA5LoCVH5qoYam2IAcvE+kO7ZjP/b/VrNfL1oLLvO8Loc24cD3y9OJb6GTLZF2M/L+V6O5AG3pnKmJDLan26/d6A/btBqX/pDf25Sddv5qGRIV+v3XKP39GokV+ibB06zryyMOjy2bTgBB828sGbk= 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 2/3/2023 9:25 PM, David Hildenbrand wrote: > On 03.02.23 14:16, Yin Fengwei wrote: >> do_set_pte_range() allows to setup page table entries for a >> specific range. It calls folio_add_file_rmap_range() to take >> advantage of batched rmap update for large folio. >> >> Signed-off-by: Yin Fengwei >> --- >>   include/linux/mm.h |  3 +++ >>   mm/filemap.c       |  1 - >>   mm/memory.c        | 59 ++++++++++++++++++++++++++++++---------------- >>   3 files changed, 42 insertions(+), 21 deletions(-) >> >> diff --git a/include/linux/mm.h b/include/linux/mm.h >> index d6f8f41514cc..93192f04b276 100644 >> --- a/include/linux/mm.h >> +++ b/include/linux/mm.h >> @@ -1162,6 +1162,9 @@ static inline pte_t maybe_mkwrite(pte_t pte, struct vm_area_struct *vma) >>     vm_fault_t do_set_pmd(struct vm_fault *vmf, struct page *page); >>   void do_set_pte(struct vm_fault *vmf, struct page *page, unsigned long addr); >> +void do_set_pte_range(struct vm_fault *vmf, struct folio *folio, >> +        unsigned long addr, pte_t *pte, >> +        unsigned long start, unsigned int nr); >>     vm_fault_t finish_fault(struct vm_fault *vmf); >>   vm_fault_t finish_mkwrite_fault(struct vm_fault *vmf); >> diff --git a/mm/filemap.c b/mm/filemap.c >> index f444684db9f2..74046a3a0ff5 100644 >> --- a/mm/filemap.c >> +++ b/mm/filemap.c >> @@ -3386,7 +3386,6 @@ static vm_fault_t filemap_map_folio_range(struct vm_fault *vmf, >>             ref_count++; >>           do_set_pte(vmf, page, addr); >> -        update_mmu_cache(vma, addr, vmf->pte); >>       } while (vmf->pte++, page++, addr += PAGE_SIZE, ++count < nr_pages); >>         /* Restore the vmf->pte */ >> diff --git a/mm/memory.c b/mm/memory.c >> index 7a04a1130ec1..3754b2ef166a 100644 >> --- a/mm/memory.c >> +++ b/mm/memory.c >> @@ -4257,36 +4257,58 @@ vm_fault_t do_set_pmd(struct vm_fault *vmf, struct page *page) >>   } >>   #endif >>   -void do_set_pte(struct vm_fault *vmf, struct page *page, unsigned long addr) >> +void do_set_pte_range(struct vm_fault *vmf, struct folio *folio, >> +        unsigned long addr, pte_t *pte, >> +        unsigned long start, unsigned int nr) >>   { >>       struct vm_area_struct *vma = vmf->vma; >>       bool uffd_wp = pte_marker_uffd_wp(vmf->orig_pte); >>       bool write = vmf->flags & FAULT_FLAG_WRITE; >> +    bool cow = write && !(vma->vm_flags & VM_SHARED); >>       bool prefault = vmf->address != addr; >> +    struct page *page = folio_page(folio, start); >>       pte_t entry; >>   -    flush_icache_page(vma, page); >> -    entry = mk_pte(page, vma->vm_page_prot); >> +    if (!cow) { >> +        folio_add_file_rmap_range(folio, start, nr, vma, false); >> +        add_mm_counter(vma->vm_mm, mm_counter_file(page), nr); >> +    } >>   -    if (prefault && arch_wants_old_prefaulted_pte()) >> -        entry = pte_mkold(entry); >> -    else >> -        entry = pte_sw_mkyoung(entry); >> +    do { >> +        flush_icache_page(vma, page); >> +        entry = mk_pte(page, vma->vm_page_prot); >>   -    if (write) >> -        entry = maybe_mkwrite(pte_mkdirty(entry), vma); >> -    if (unlikely(uffd_wp)) >> -        entry = pte_mkuffd_wp(entry); >> -    /* copy-on-write page */ >> -    if (write && !(vma->vm_flags & VM_SHARED)) { >> +        if (prefault && arch_wants_old_prefaulted_pte()) >> +            entry = pte_mkold(entry); >> +        else >> +            entry = pte_sw_mkyoung(entry); >> + >> +        if (write) >> +            entry = maybe_mkwrite(pte_mkdirty(entry), vma); >> +        if (unlikely(uffd_wp)) >> +            entry = pte_mkuffd_wp(entry); >> +        set_pte_at(vma->vm_mm, addr, pte, entry); >> + >> +        /* no need to invalidate: a not-present page won't be cached */ >> +        update_mmu_cache(vma, addr, pte); >> +    } while (pte++, page++, addr += PAGE_SIZE, --nr > 0); >> +} >> + >> +void do_set_pte(struct vm_fault *vmf, struct page *page, unsigned long addr) >> +{ >> +    struct folio *folio = page_folio(page); >> +    struct vm_area_struct *vma = vmf->vma; >> +    bool cow = (vmf->flags & FAULT_FLAG_WRITE) && >> +            !(vma->vm_flags & VM_SHARED); >> + >> +    if (cow) { >>           inc_mm_counter(vma->vm_mm, MM_ANONPAGES); >>           page_add_new_anon_rmap(page, vma, addr); > > As raised, we cannot PTE-map a multi-page folio that way. > > This function only supports single-page anon folios. > > page_add_new_anon_rmap() -> folio_add_new_anon_rmap(). As that documents: > > "If the folio is large, it is accounted as a THP" -- for example, we would only increment the "entire mapcount" and set the PageAnonExclusive bit only on the head page. > > So this really doesn't work for multi-page folios and if the function would be used for that, we'd be in trouble. > > We'd want some fence here to detect that and bail out if we'd be instructed to do that. At least a WARN_ON_ONCE() I guess. > update_mmu_tlb(vma, vmf->address, vmf->pte); > > Right now the function looks like it might just handle that. You are right. I thought moving cow case out of it can make it explicit. But looks like it doesn't. I will add WARN_ON_ONCE(). Thanks. Regards Yin, Fengwei >