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 E63B9C61DA4 for ; Fri, 3 Feb 2023 13:38:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 739496B0072; Fri, 3 Feb 2023 08:38:37 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6C1656B0073; Fri, 3 Feb 2023 08:38:37 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4ECF86B0074; Fri, 3 Feb 2023 08:38:37 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 3680F6B0072 for ; Fri, 3 Feb 2023 08:38:37 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 116304048E for ; Fri, 3 Feb 2023 13:38:37 +0000 (UTC) X-FDA: 80426085474.15.7764672 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by imf23.hostedemail.com (Postfix) with ESMTP id 5824214001D for ; Fri, 3 Feb 2023 13:38:33 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=ZiKb6d7g; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); spf=pass (imf23.hostedemail.com: domain of fengwei.yin@intel.com designates 134.134.136.24 as permitted sender) smtp.mailfrom=fengwei.yin@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675431513; 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=/soZ8E/5P878wdOG5Q1r85UFQzRZZMa8WAHSZtJdDR4=; b=pb7CrIwY76fsMD7DZp5f8TnpbL1tasRhqvak7VBUa/sIwTQ13aqAumPIIw6zESe1qESZWW Nm0fxvNcNq0IjftzO+ivJE+zfOWcLnl4SMvxgP5WD2GrxQSYeCngS2S34fbMYSUxaLCwae FrJZOXwB0veOSDRur1TzaPtDcOJ+9Y4= ARC-Authentication-Results: i=2; imf23.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=ZiKb6d7g; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); spf=pass (imf23.hostedemail.com: domain of fengwei.yin@intel.com designates 134.134.136.24 as permitted sender) smtp.mailfrom=fengwei.yin@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1675431513; a=rsa-sha256; cv=fail; b=YJY0B2wrqdJ86DQIBGHEiXpd+J3zsbatOBvcq2/YL43KDbOM5UCY8HUTas688VyMATKIHd QVBegoS0/dUYbjBzUH4Rp2thnnUzrKVZ4qvzRAn+cVT5JwlBB5NswJOBCgKQP2SPumd9u/ JIjidQyd6e2MoUva4JoQSm9uoXIB1iM= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675431513; x=1706967513; h=message-id:date:subject:to:cc:references:from: in-reply-to:content-transfer-encoding:mime-version; bh=CDoM3KZwbS2rawQbD/FohGaTi9DKoVYg7wS+Ey11kLs=; b=ZiKb6d7gnNt2HPhQE/W5cFMIN7HE/Eqtpk30w+FtYo5i+0QsXhPA4871 LxTRsvJzYxAPqUzFgn3i89uEwonXzhsNE4F2GvmeApCM+QBL/uOrtsNkT guQlJNLkKapa/v9noxi6/QAGBN275U3Ico9d7emdzrcwC6ADELafNG6+j 7rH2nkSDEODhhOahXPi2E68KRKHwY5y5zFA6ssU8Z5DaPi3oifiwxC8iZ Al3lgdl5S4qVScNpAyfmucB0RuIhEnFYutAdlFMLuqYFMLFDuFj1V7rYc ARCctQBHPH0aYxlGv4DPs4to4IDbNJALFEHTw8KXfoAxLTli4kfo9Dl1m g==; X-IronPort-AV: E=McAfee;i="6500,9779,10610"; a="330033427" X-IronPort-AV: E=Sophos;i="5.97,270,1669104000"; d="scan'208";a="330033427" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Feb 2023 05:38:30 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10610"; a="729259533" X-IronPort-AV: E=Sophos;i="5.97,270,1669104000"; d="scan'208";a="729259533" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga008.fm.intel.com with ESMTP; 03 Feb 2023 05:38:30 -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:38:29 -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; Fri, 3 Feb 2023 05:38:29 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) 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; Fri, 3 Feb 2023 05:38:29 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.173) 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:38:28 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P+/ODvsSEsJMmsRM3GOoT2NZndk8Ksl1FXzQrk0s8FiLcVzocQgUKNzQp49YX75MgFajBT3HfitsyHm8Piq7V/QWWkGDhHhyyCKy2FFq5XFgH0JAXs2uhryx0lFrEx/H6Aguwu4aQJQgE9RTyusk1FI8AdCBhBC50E4k0NnHW90CKX0a+be1fHRiCh+nrkJwMmtnc2JIVIaagZBdCWWYpeviD398OVZ23xqRcit1ZPNUqEnWS2JEO+IQyK3yaJZ1gdnj/WMAezm9DOmjiAvWoBNDoY4hsJLhei9XGoxsdyfnifSgr9GcDjEeIGo7GFOhrfK29ydLM4ZkIoMr0DskbQ== 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=/soZ8E/5P878wdOG5Q1r85UFQzRZZMa8WAHSZtJdDR4=; b=HGxBg/6DttP67ED7pa2Q4q2wHr4SYd7AH1V9pYgFWlLAOvoCdFjUyWlfnnCWFsD6zKzxg3Ecp3o//SjNGAw2HfQnGigFr4FD6aJJp9Uph8pQVDvcN88JofSEWvh9u6hjYxbxY95KJtwPFw5m6CshlxtZpUcCMYIkXn1JhGjw6D6veRUVob/cswGC37qwYoKmUUiKjstq241n9vbYEFPj2YRFQBzO2WuY7ZL9t0ACt3wSXY9EacfFeWHr05ZgvBJNajYe8K9lvUJM1RDjjsYz2HZ4Txutxs+yoU3nlDqxK6V2pZ96jd6o3UeEO86KzscQN0yZ/SfVc4aDou3K7NZJtw== 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 PH0PR11MB7541.namprd11.prod.outlook.com (2603:10b6:510:26d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.31; Fri, 3 Feb 2023 13:38:26 +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:38:26 +0000 Message-ID: <28b7e294-8074-47ee-88a2-51890a035559@intel.com> Date: Fri, 3 Feb 2023 21:38:15 +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: Chih-En Lin , Yin Fengwei CC: , , , , , References: <20230203131636.1648662-1-fengwei.yin@intel.com> <20230203131636.1648662-4-fengwei.yin@intel.com> From: "Yin, Fengwei" In-Reply-To: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SG2P153CA0009.APCP153.PROD.OUTLOOK.COM (2603:1096::19) To CO1PR11MB4820.namprd11.prod.outlook.com (2603:10b6:303:6f::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PR11MB4820:EE_|PH0PR11MB7541:EE_ X-MS-Office365-Filtering-Correlation-Id: 10b4b193-1d29-4221-b172-08db05ebed16 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: tmqQOBYshWvw0A6P7XalDQJ+hwT1KJcJrHomymBdsp0Ttvcp+7WqWKq7ad/EeH17fVqr5S6i0GQHCNnFJ8Z9W8uM0tBDFN6bR9HvLAy71yGboYxpNHFss6ZPoPbBlrFlVewVv4rdqEX1BPC46dkiOlybnU9mUgXfiJFtM/b0GIZxzjBHzPdbLS0JwIjJNCt9GQXjGJoII8tEi94Zh2aS4hzaHhZiGjt3odWW18wuOL3MNn5Zl6t9lSh9LG0fcJI8DgfCyEX42ydOVFgAqBH+rl/+TxbYkYntgcZz3HvgM5W3yRxiHeQgZda8S3CiU8flMcFx9cz02okcqCFG4g2P1Pfxq7K8uRzK1k4MJ+4updHWPJM77j2ETy5PuOnSkAUlueiPsdrRF4Z+WZin9l5m8EIdH7WGmRtJZU2RYvc0lZu8IRJaCc1k9UFO3QlnG3Efvvsn+cLGwr6tnxL3sVUyt8xsOOQPf5k29wQgsnkTgWgN//8cYO6srso0g/hZMK0HmyE8cVN/10f3PK8YJPvRPFtY0gxFTLwi4gxBepmVpM1wcIY7Ux7BBoF4vgRlEg1iVp67zfDEtDEM4ErJLUXq4MSR6PDW0Wv2LXxpWPWLWtNQWKNsXbPOi/++kMe3QL96QfPgQlUi4e4BZUScBAWUIZjX1GCIg8RW7V2mYfhmN7QuUHRaXtAxSJrFkDtwSlRzi+gE+h7H9tKWd/w7ugMJCdHniX/Sg+Jv6MiC83bhM3A= 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)(346002)(396003)(376002)(366004)(39860400002)(136003)(451199018)(83380400001)(6512007)(186003)(26005)(107886003)(6666004)(6506007)(53546011)(2616005)(36756003)(31696002)(38100700002)(86362001)(82960400001)(316002)(110136005)(66556008)(66476007)(66946007)(478600001)(6486002)(8676002)(2906002)(41300700001)(4326008)(5660300002)(8936002)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UUlTMGZRUENmc29kQTl5QVNxVUd1SkJLUVo1QmtHeFVDQ1VVZkkwd0tPK0pJ?= =?utf-8?B?eW5BVGhIWVpWUlFMRVROUWxCUmczb0p3VGRPWUNzS2JkaytSaUt3ekpsWmlW?= =?utf-8?B?QmZSMGN3VDdrNU1VMVhuZW9zSWhkbUdFVnZKMjg0dS81ZEdrTmN4ZnErRnhW?= =?utf-8?B?RE94LzlIa1oxTWtaU0Q1K1BsZzl2NnBBayszSE9YaFkxaWNWYTBrbk5wQ1U0?= =?utf-8?B?NUVJbHVRaUU3QlQ1dkYvRjAvTGJCK0grY0RjUk5nMFBnMHVRN1ZMZXZnMUx0?= =?utf-8?B?bWFFZHc3V0pXZGtpTzU2YXRTSEFZbTdHSVplL2tvTS9LZlJML3RHYjJ5ekpF?= =?utf-8?B?M3ZrTUcyS3ZmRG1OQWorbjlnL0s4THpzc25LL1kwVFZjMVJhWHdVbFVoTFhQ?= =?utf-8?B?ZTlOVXlRZUpLcUNnNWFyMzhlUm9WRVB1b3I4TUxNcXB1NkFEUHpRMmVIeW5q?= =?utf-8?B?NkZOVmVlUmNtRFFxekx5WFpzS0hQZy80amhSN1crNWlDZ0ptUVlSRE1nKytt?= =?utf-8?B?ZVh2dXVJdmJMOXV2Wjl4dXZKTEduOU1WU055d0JFUlREeExBS3dQcWtneGJE?= =?utf-8?B?dkVUQUJFNUN6VDcwYnVBUVUwdFJyMDNZMjV5SnNEQkozOGIyWXFYYUJYeVJB?= =?utf-8?B?T0JhUjhxNC9aY2NTcVU2NWNrU3E1ZW5SRkIrRFZWdFZYenFNeHp2Y3gzSnNN?= =?utf-8?B?LzFRbGpQZVh5eXNoT0poN2pqcmZNR1dsRWRRcGNXR2hzalZzb3h1VnJuc3c4?= =?utf-8?B?QmhrSVpKdnlJS05OMzJHcDVRRHdiS3A5K2NUS3Vuc2dSYngwUDF0MVQvUk5R?= =?utf-8?B?Sk9Wc3RrOW5vRHMxYWYzZkMrTUhURFRRbTkrWjhjNk42NmxCUk1WQWw4T09G?= =?utf-8?B?dDJDdHhFcVZpSEd2RkJMTU9xUVNxMmJGZkNNK0lZK1ZtRlhsK3dZaXAvbmtz?= =?utf-8?B?TDJ6VThvYkVTYTRrQXFSVFpJNitGZEp5d0daTXlobVNvajYyTkFXK2lwZzlL?= =?utf-8?B?M0Fhdlh5YUg3Z3dBdXVCYXdCTGxzNEt1VFZSL0tUTENuZVluZWxxV2haYUZW?= =?utf-8?B?VUJPYmF6WEJTUkVQb2h3aWw3Y29sbWo0elowallvNzFzbnM2aExvVWpSVVRR?= =?utf-8?B?U2pNcWlJQk82S21MTFVESjNJU1RuNVV6dnV5SFRJV3ZZdTBmWTJqN25pQXdN?= =?utf-8?B?MmJZMTJJREI2a3F5a3BVZWU3NkhCQUV4UTNocTR1bjdFZWtNNzFVV0Z4ZEMy?= =?utf-8?B?Z0FycmVYWVlpUG9Pb0lGUUx4d3Q4eHdlR0ZNKzdiYzZiVjBJZDdKZFUzVlpL?= =?utf-8?B?LzZGRFd2cUZwbVhkVUlQN2xzdjlmSEdleTJDVGFPT0JwcVB6UFp6TlNwdFJo?= =?utf-8?B?WHVNclBCR2MwMkVyK0xPanRGODZtN2JrckdacDBwSWdWRjdWTVUrYURBaGtU?= =?utf-8?B?UGZJOWVOZnc5VEp2L1l4a0FxaXovMjg4KzNwQm5va2cweDBwOVJ2U3ZJeHUy?= =?utf-8?B?K0xCWmhhdDhwRW5wNzdUdVpMbEwvM1hpR0xmREV5Qmdka0RZL2hldDVjQ0Vw?= =?utf-8?B?Y0MyNzZKa0hoQ1hTNEVGRHlxWmRRU1dXb3IvZHowM3dNdjBybVE5bWRoYVRO?= =?utf-8?B?bW1CY0tkM2hiZXpXdWg4Wm02bEJmS3M0ZnZHa3ZMdHY3UllMV3Jaa0U1VXlE?= =?utf-8?B?b3NOUWpKb0hOSEd1MlpEdDZnc1NBQ2pkVlQ3SUNpUmlSZmo0UVljY0YyNDJC?= =?utf-8?B?Tjl0VmlLZFl1aGN2eHU1dDBWVWVQSzVJcWtoQmhTaTB2eGJhaU1QakdXeXFG?= =?utf-8?B?K3pJb3hnZlVMOTVMdGd0YUNwSXRnb2tZa1QySFg2SDA1WHlOOEtiajRMR1VS?= =?utf-8?B?T2Y4N3Nic2hVMWd6ajlEeFlQYUJJUU56ZG9Fa0t3dlcvSHg3N2RPUGFhdWg0?= =?utf-8?B?dGlheVMyVy9Pc1ZDbG1FSGNPaTdNclUxSm11eGZ4cXZuOHB1NFlaaGNUS1R5?= =?utf-8?B?eGNtbDF4WGFUTDJPMDA4VUZBSFlVeDEvQWsvU3B1QkpNblZMUmhJdmdsbyt0?= =?utf-8?B?MUE0ejRDdTlWK0dubWUyK09TYVI3T0N1VnF5cWlSa1N5M0c3OFJEK3NpMElT?= =?utf-8?B?TGlPcldObW9BY1psK2hLdXVCUEJ4L2xyQ1JLbjNrb21jOVZhTVE3WXVVUWtC?= =?utf-8?B?NHc9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 10b4b193-1d29-4221-b172-08db05ebed16 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:38:25.8072 (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: h5I4OuAfl4Ok6j/TmssJIas/P3FCu8XK1IPuUqkL/ZTUv9AvpNSgNWZTYo56iv3iCX0ZPyPleRMNHmTTtH9weg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB7541 X-OriginatorOrg: intel.com X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: oisuc3tic4o4k5o8rykupfq74jw7opx8 X-Rspamd-Queue-Id: 5824214001D X-HE-Tag: 1675431513-630241 X-HE-Meta: U2FsdGVkX1/iX1tUwoW5vm/XiE5R6ktltLq5lfAjaZ2K4PVmbUs9lQrbLuKRZxO/Ck9xHIwiqwd5wDdYaACVNqT6oDBeuBShPGB6Zn/5lPcTuBtjHIoPH3GdAoXssPNwdFwxu0j/GIgw0OGT8aw1KBoWQ1iCWkxj/Hf07pJooLe7/FqKeK0hLiVt+qYUGF8kJ9jxB9JMMBc1Qe6B1JI73mXSePzaWksjDMINKy+7LjDSQ0h3lWVkBHl//il34wgjFv/vspco7RXvVL0klnTaAHYAXHxh4CIEpgWBqKaM//HiW2owewK2MV/eiol6T0Win3YRiN1NYeWF5K381a9p3JDWyLKqibK/qiOB1qVKYzYKP5uQPYtfx4nKjpBhhEaUSNlOwFvt6bmgcuW7Rf2EW3cG4OF5c98V1M5D8xE36aYJfuoGVbqVUSdJBS5tHGiUL7Gg8bFbH5W5l2kg+jM/O/D5uNnNGb98NiIidw+WcOujLE32oRcpjQduxRjMb0VZAB826pUQGGifgOMmmxMh+WmgpMikUKtndUe4UOD24teZWx+23Rk0HAYaE8cOvbjovHU7NKazdEDl7s8QXTy+MZvCdR248yKchAkrtFwCqzZnnjq9QAl85oJtxEEVXTQAOgBuYKb7xk9A9or9FR40RwUXaIWgG7VGdXjMHr9a7HlpV+upmufietRuWO5ovyLX4POBK7mOvPJmpkyc8vJx57sa9pbrLCKELSc53s1owTXmhwFIQKY6brgDnWcpNT20SMtZla5RpEzFVKtVYPeAal1jnWmqOom7KYcfkEgzUiQxUt4qBDmWaP5/ZntoqeUDyE+EBzvnfVvDnJQG2lfrmPhM7Mb5xoT7M2emlO3kkVpZ3lZ6Tbjh8S8XlprVDcXBa19vvRdRyYdI3P+ZvX/QOKy9xwaKpHZsC5wHlDdlMEDdy+GczfIGH1DhYlIbUi3wCHMJdER8blO4K1BIMu7 qKUJFJa/ sJHWLYIv8/RFmxCUowzqMgaO/M/2qxhNIlgzvUG1dregNdx/aJfY2wky7HjUfYnvCNiXjIgZsp3WTSmUl6gB80w+xxXkFwckZfXbvS2vX40M+o8z9GblSP+NOY0E+ScbMF2Nd7pHbRc1mxcBWdQ4qe6nlo05/SzHdZtVE6wHShVkwkmJlutI+j/QeQMxGuiMew3Df6N8A6D3UjXOeSSg97a8oV0pjGHbgV2/uZQFz7GjDnc9zA67Z5msaSVgI+N8Sv0hSlcfiwvnATsb0H158+dDchZWlSUXaAK7TtxQMOUU5HVuRcEvbB0urhGpJOXSm4Gqw5veqCSMzkz/K+YRJLxpGIpiffMIHljHFD1CK0ca3QUbYckrWwKo+0R+AzlWFOpjxMI4771JR+233fRICMvTzTV24NtYvyQxRPj/T29W7au8bRFyoMU2NSw== 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:32 PM, Chih-En Lin wrote: > On Fri, Feb 03, 2023 at 09:16:35PM +0800, 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); > > Why don't use is_cow_mapping()? > Is there anything messed up with VM_MAYWRITE? My understanding is it's not related with the mapping. It's related with what operation triggers fault here. Say, if it's a writable mapping, and if the read operation triggers fault here, no cow or maybe_mkwrite() needed here. Thanks. Regards Yin, Fengwei > >> 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); > > Here too. > >> + >> + if (cow) { >> inc_mm_counter(vma->vm_mm, MM_ANONPAGES); >> page_add_new_anon_rmap(page, vma, addr); >> lru_cache_add_inactive_or_unevictable(page, vma); >> - } else { >> - inc_mm_counter(vma->vm_mm, mm_counter_file(page)); >> - page_add_file_rmap(page, vma, false); >> } >> - set_pte_at(vma->vm_mm, addr, vmf->pte, entry); >> + >> + do_set_pte_range(vmf, folio, addr, vmf->pte, >> + folio_page_idx(folio, page), 1); >> } >> >> static bool vmf_pte_changed(struct vm_fault *vmf) >> @@ -4361,9 +4383,6 @@ vm_fault_t finish_fault(struct vm_fault *vmf) >> if (likely(!vmf_pte_changed(vmf))) { >> do_set_pte(vmf, page, vmf->address); >> >> - /* no need to invalidate: a not-present page won't be cached */ >> - update_mmu_cache(vma, vmf->address, vmf->pte); >> - >> ret = 0; >> } else { >> update_mmu_tlb(vma, vmf->address, vmf->pte); >> -- >> 2.30.2 >> >> > > Thanks, > Chih-En Lin >