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 972C0C3ABBF for ; Tue, 6 May 2025 14:04:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D96BD6B0085; Tue, 6 May 2025 10:04:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D46C16B0088; Tue, 6 May 2025 10:04:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B99AB6B0089; Tue, 6 May 2025 10:04:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 95C0F6B0085 for ; Tue, 6 May 2025 10:04:22 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 5C6491404AD for ; Tue, 6 May 2025 14:04:24 +0000 (UTC) X-FDA: 83412652848.04.565A11F Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf10.hostedemail.com (Postfix) with ESMTP id 8E13BC001C for ; Tue, 6 May 2025 14:04:20 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b=T294s29C; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=t1NQNzSe; spf=pass (imf10.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746540260; 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=osEGpcXtVX80Qw/ZCG098it/1CeMb06i11Hql/FGw28=; b=4tMkO1kswWDPyhiAMZl3QeCIkMSEArn/FV+/sDaEiLOXVxYPYg1GswBKGNLp8YlbL09Bz7 +hBYno58Epiii3mJwukQNCJ4O5LCEgkONCSeKljXh8rRKwoDkapBLfZYPa7e4nneMFAPG/ SH0rD7GHanIQzXLxzwYGiFo19hrnvHc= ARC-Authentication-Results: i=2; imf10.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b=T294s29C; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=t1NQNzSe; spf=pass (imf10.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1746540260; a=rsa-sha256; cv=pass; b=oKSZKpHXIKIHJZTmPS03/q9cdTmE8hOEymozHgbE4dpvmDkZbytxm8olPP2fO3F5kYTmV1 p5svKkr2/MAl101O430KvWMche/a3dPTeyL0qUC4VqD2n1W0mOG5XvVOP+F5Ab/YPPVkUO ik6XYlqBxeDQvii1mvxZ9XvvkNjOKik= Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 546DWPfJ021617; Tue, 6 May 2025 14:03:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=corp-2025-04-25; bh=osEGpcXtVX80Qw/ZCG 098it/1CeMb06i11Hql/FGw28=; b=T294s29CDnhHt2/owfv7WfLbF2MQ6cFwOF PAc4DQjzwpiKA5xzudbOFu8J+DXjFOJ6zYWTZP8NEIgh7uZdyYyk5B+rEjsCPK0e b8dze6klvszxXK0FnVqjcN0qKrnmfRCAeGjmy7MtnwIz5sVF9VR5OStDsA12zj5N pULpYNoQL9C0M/ALtWC8dh/HDKpy3hlRhz0MgaQw0d+MtTOjtNzq3b79+L7ryUC9 qbJ0WH1qA0piN9TasBZVAMcvBqiZt1cJpSlQrn/MW3W2quW6fHDWdZmPKT82wlYL 5HqpjaKW21MY9HDbjSUWegu85Vl5raTS/tPmzc+y+2IM6J1vm6nw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 46fkcy034k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 06 May 2025 14:03:53 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 546DQMR6025424; Tue, 6 May 2025 14:03:53 GMT Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazlp17010006.outbound.protection.outlook.com [40.93.13.6]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 46d9kf9xh1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 06 May 2025 14:03:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WazhIi+nVkclD/C1g7jUu/68TA2Jwu2IgprUoMPBvGXj8+IkmRw/Nhh6021vLipKDRZcta3F/HDVH6oHGp8i6Q/Nyb76L5lslIlrMPRkLrVOMdSh3HhKzBG88NJ+VnHY+17WfDndHo2ScJSiZXeFmSGlao7966cqb38om5qcg5QEVpp1MgntAypxCqGx220A4HksX24o3ORYJG3smVcPEAAgybC6Af/KZgPC32m5ZHa7poA+xxACC4hjiA0znsf5KzRSFm6atbpmfD6cwLAYZIwT0IBV0vt2Jev5jKZ/QxciwItlbzSD6UrIkZXUTFS2NScRHTROnG18GSmi6PxWvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=osEGpcXtVX80Qw/ZCG098it/1CeMb06i11Hql/FGw28=; b=dRhbR+7NvwWW9Zc+gOc69NAj1xJm8cBrrQ7zgXkQ1nmO9tvgidf5+X4xSVk4q70RBoaFFo5GGPrW6gZTzchAp+G+BXMA/Qiqwuz+YVaiNvOdwjE22oxBcmYc0d3BUc9YmNJLbSk871pmQz697ECKGIGSFIC4E7cPbFArka0Pri2RCkRHmbr7UvXn0+RWZM4HfOgbcDbxTRawNiSH8fzCUPVLZO6yNewLRcZl+H3sq3kmlxxvMsHi1e+S41WGRtoiE0tDwfyHbhQS5kxTKLRaSYTtVxGzNMChV+fxQse84l8+6bliBOzpKH2P9i8fHl6PJvt510EaOkIGYAW1F5Mhrw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=osEGpcXtVX80Qw/ZCG098it/1CeMb06i11Hql/FGw28=; b=t1NQNzSe7N4MIGcteXa/cocv2wSWpL4MTqEd0i43riQqVIgGBalVyURTrGn51Y5Emi+GFGo5clJSeiNghg5rMuZwrqOGdmZbvGTtcqPb246euL/kIcwrLDjhRqjdEuoS0P0jYFqAuGXxiAPMU49pZtpZQ4wxObEhJVJb6+vvl5U= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by DS7PR10MB4959.namprd10.prod.outlook.com (2603:10b6:5:3a0::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.20; Tue, 6 May 2025 14:03:46 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%5]) with mapi id 15.20.8699.022; Tue, 6 May 2025 14:03:46 +0000 Date: Tue, 6 May 2025 15:03:42 +0100 From: Lorenzo Stoakes To: Dev Jain Cc: akpm@linux-foundation.org, Liam.Howlett@oracle.com, vbabka@suse.cz, jannh@google.com, pfalcato@suse.de, linux-mm@kvack.org, linux-kernel@vger.kernel.org, david@redhat.com, peterx@redhat.com, ryan.roberts@arm.com, mingo@kernel.org, libang.li@antgroup.com, maobibo@loongson.cn, zhengqi.arch@bytedance.com, baohua@kernel.org, anshuman.khandual@arm.com, willy@infradead.org, ioworker0@gmail.com, yang@os.amperecomputing.com Subject: Re: [PATCH 3/3] mm: Optimize mremap() by PTE batching Message-ID: References: <20250506050056.59250-1-dev.jain@arm.com> <20250506050056.59250-4-dev.jain@arm.com> <7c6e61fa-2437-4c99-b1d3-97af5e2b37a3@lucifer.local> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <7c6e61fa-2437-4c99-b1d3-97af5e2b37a3@lucifer.local> X-ClientProxiedBy: LO4P265CA0219.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33a::17) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|DS7PR10MB4959:EE_ X-MS-Office365-Filtering-Correlation-Id: 8f3e1d5d-2ad7-49df-4a8f-08dd8ca6d191 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|1800799024|376014|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?sjjW9jy5ahfSQuD4yJFz6F8AAlSpIvnLdUvZkLIw5POQyGRCT1nwkSyeWNSI?= =?us-ascii?Q?urmCJctK6LOJBoTjE8rsN1+RwJ+YhLLiP3CJ8EUd703qPBWPmc7GWGII2Gtr?= =?us-ascii?Q?w3uG7xsooASOjdN/TcyGy57E631jn80TVtciY8x8/nj4EUOrX2/aVGATBHt/?= =?us-ascii?Q?uJcW5u1tsTi0RBV5o2MZL8/XgFjPRSlYNgIzjpZuRc1W1Wj6snYjUucdCdba?= =?us-ascii?Q?b0DWwJJ6nAJzq7L02RahIYFl98ztwFKtvpI/phdGycVmP3ymWLqBqOcLIS6Z?= =?us-ascii?Q?aJZmyfOxqMvPqmNFBAonUIY6gv2nzCWUzYnK0Ci1B4NvZXzhl2pTx6lRMglK?= =?us-ascii?Q?8KNz3s4mj5FQH1kNTkxKY/waVmjLWsMdyBbePCAcz9nwc0+u/SpPcUcj1QYY?= =?us-ascii?Q?SgMoj0e2dmFJf3ohNKoe1+zrn/UczZF9+avu4gaA68JDjJ6aGki2aMl97Ltw?= =?us-ascii?Q?gF5jKDIGt9UROAn1CeHW5rA4Qg7JvyWlN1BtHgHbGqjwJyJhNy8dXtAo0yLR?= =?us-ascii?Q?k0y93z+n4GPZ6ZshvsPsUCLM9xnx7WDx8tQCu5phenEHAzJL8fR257Nksj2F?= =?us-ascii?Q?TvSS2bEWHMWJHjwlwPUqxTJuRcdbOUkbfyoiiW7039dEs3Tg1J1c7KqgA11n?= =?us-ascii?Q?9J4EYFS3B7LsrBwkJZ9JfG1sFnoKnwxtI3LMmGlRf3QDNiTA9daWKRt5EXXo?= =?us-ascii?Q?uGtQekE3tAEoYMxV926ceasEUeOuURIXAQI5rY/1JO1bu9EQvGLZLVlBvQRY?= =?us-ascii?Q?iy3Cvud3tge52VmFNA+gC2myy6Iis40H9wGcFnT32pP+7x28vll5/dgmkOKA?= =?us-ascii?Q?DhyIE2fOJnaEzGRWxVNgNFNqBilVBmY1/Go46MJwt3BgiPUbZ2RuXBm9Bb4Y?= =?us-ascii?Q?gSouKcnj+h7TtbHN3QbZpPBHCjpt+MVKHtbqTBCZ1rb02rFsb9sDGjSs0SEJ?= =?us-ascii?Q?XAp5hPsAOGGOtNQZsW2oiysBQKCBrSHOLpxQbJXEYlULeAiUpNQ+Qn3m0wjp?= =?us-ascii?Q?0tw8/AJfQtwd2eVRz4JlgJz4cthGVqFLl3mb5RCFB6PxNRrFCcBL4T/6OB/V?= =?us-ascii?Q?0p60/DTIKKLRtPs5Oe6WRYqoX4BbLHvQGXK88YrkZedJOR38m3VaHYvdtGe6?= =?us-ascii?Q?BalZ2wRLjKNOZx2i4Kw3J4CWqkSWQw70LHWFbTUmfI4hryoBSEspwqHTTJSc?= =?us-ascii?Q?hxGW4RoBlXCmGdlTuUyb9BgKBC0Uu52xXZCT1KiPKn4K5P07Hisfpr4i76kn?= =?us-ascii?Q?5ERAe8u+cZEWXayUt6OtsO/zLJ2WBZcIc0vvTyd+u/tmiL+9plxxn0Y+D215?= =?us-ascii?Q?B7moda8yrGCl4pHoeHf5hqpadEMpvNn0FIJW6ewwhwqeipSLBVgG52P17Iru?= =?us-ascii?Q?RQ3MVn6cOFWypfBFeOxePzNgNt6kuVlQB8tOKFjFOWdPfhUGN4Y/4Mq3FqKK?= =?us-ascii?Q?nLWtFOTx27g=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QARPIlQWyWXKqt/SNVdsI4b7vNZwCvPk1ISD/ODsSCUYcjtUz8rxqdwI/Pyy?= =?us-ascii?Q?BqsqO9SYHbTabk8LgYsF0l2oJCtlKWP8Z31iI/uUBeUvA3Q0BCb9iGA5DvJ/?= =?us-ascii?Q?uZAscjhpQGz9zXXCr82mFkFRvuKm9HS2X7CJEPxwW2mjxgtMqAbzD2f9fxeQ?= =?us-ascii?Q?rfHqqB9fIvlQfMOUPtGDUxZ+TTArBdALdZmNY4KPok7vTAdLgo7pkZhcxI+7?= =?us-ascii?Q?oYKpPytMKU0hiIFTpVaYW6tZfaHlte5kxdnncOWwd5+RJLW2I5WkkoMe5orz?= =?us-ascii?Q?A1uQJRRt/dJRNO0AK7lEsCmkmqvNopFFJdHQrkQ9+RB0WHus0oACSkcLhNY2?= =?us-ascii?Q?FMXyMu7f2qlAOXbTxz+EBmYso44kLtckI142gu3+3TmUW+b8y6nDT1oa+lT5?= =?us-ascii?Q?nWpiW0/bqmhIULednO9YgrMaqVBn5yKHeinADwaCOBDgfRJTL3AjK0GbMLId?= =?us-ascii?Q?xQmCKVbW9r+bIB6IBvXKlDaBvjOVcMRs7oXHM3TSEMeRnIQjA8wSBhmhyyLY?= =?us-ascii?Q?f0fRqdHD81Fr5XXoUp1C25o5fMSUQH4UAZIIcWvSn6WINSS2Iy82lTnoANpq?= =?us-ascii?Q?Tb8qt9Pbox8YRBukfhpl7fZoIuvvOWE6cPmCUzPa2KBtXEIgItxEoGXAn14/?= =?us-ascii?Q?X59ah3J61E6tBWTJ/HfrRYTRi1Q3vaLE3YiFFjPzhQIInvqQ6Xy5Gbo9wLqZ?= =?us-ascii?Q?66/oblxZ50a/Pns2KTJ5987rRmPqN/DTt3W9Y72vXBnTs3aFQy4FpQlsAlqE?= =?us-ascii?Q?CiDM3jFzka5TCScRk/5GsuXASikQein9c6mM9C02nl/uYJ1sb05Ia4j7vJXO?= =?us-ascii?Q?ZjL7T13/hzwO/SiP+J/aDIOuMpT2/w4HDlRGMjRVGiiFAGi3op7e+lNVL4dz?= =?us-ascii?Q?m914PbtDgH0aGb2YFm8h2WxHXuNvXBSPuSUcK75oaDfYABW42Alrwu747tal?= =?us-ascii?Q?utx5QxFStcL0ivlqgZ/KIrKkxbXNl/goCsg1nZaJcecDTMKYwhCaIDIPjlc0?= =?us-ascii?Q?J6u3JI19zmzZTAakd4GtHjHlGgJ/TXwfp0nkxKBEbhweYG1r3JapMbm2w3aA?= =?us-ascii?Q?/Wl0mUXNPpBIy7A2/utfSW9YnVSoFQwqV4RxjB+wS7UeqCWMJ3m8cmNDDz91?= =?us-ascii?Q?fLQFzqMBIeKpPgSXTYCSiXw1FeQ7nDtV+Da6EY7S+A6n8Xx3OkaIss2MX8mb?= =?us-ascii?Q?XcuIVk3evpI1eWaairOKSXgfxSZBeW2n7Ah9Wf93jusrF/QIrEoQvrLztIqC?= =?us-ascii?Q?6u0quRz7BOlSg2DXBeISqPefv4UgU0onSqtM7vAyYpSGBhxkRQzKV39mzOme?= =?us-ascii?Q?4vBdX7+tyii2gUjcB1nA6Aa7yzBmXnxavIWALtJ/iGKUtfYlX9ccY6MPLFhZ?= =?us-ascii?Q?BqhMZsuQg9VggyNBxoVHklLAQWTVJxelwY0Fxwk0G5dAzTnrFO6slizWm4cn?= =?us-ascii?Q?ZW00FP9/ZgiotrgxsRjQ22SfqqULWYNCZoHDE75dv2PJhk4fMOaM34jpDYSc?= =?us-ascii?Q?yV1oeRFNUWK1F8YZyRdjQAi8JId7/ctUZFi7HPM1hoP1UBtmwmNo3Xnsh6v7?= =?us-ascii?Q?uc0TRq/oiSAT+slcy4sG5nrb31B1RRktFpg+Smro+ZA7mJgRxtp5I4Zse4Sn?= =?us-ascii?Q?Ow=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: oUvJ8a1Rlst3fPDPxq3b0Gpf/MBxE0pXH+emUWHG9W8nHSv1tv2VCTTjXSybcFMJHazZYaKvL76FzqiRoDzNWU4RstQBhFN+9sL8saFnDVd4+bSkroperG/L3ng4tdcQEEyqh6Pb3nszJH/VKiOsWahQaCeOMKEWHdqljiFarIRITO/NO4Rd0u8t1HGDj3/pkcglUGYYMX2btDVPTGiOvEYu4V122+v7BVCXas4BB0fZBm9OPndVh7Nme1ersPd4U5urtP79Ml59t29kXVc0y70NdxxalLkuW80tPfr796IV7y+Sa5QsOUM0u4drCZMfKonIiUuioGQjieyUnLHsKlSma3jTgZ6u2nZqLNF71GAr/+Fpw/f82SlM7fjjfGRkAe7ga8l1wNbm01wF4mp82seFR7BE3IgC/u6bTDen9QuS74WeOrfzpLw97tzR2iZz41wsn8ak8RvYSG7F0YdU828qc4ucgYAADrTYrVxiddyNMY2Kun5ssvnnK3Y5gAsfAXSSVtnAaDPLhaVixces4PVYaM0Vd0Wk1no7H35Dovbw6KKNdQ64Da0V71dy/9eR4TXBYm23XizKjpbeSCqXBbMJIza6UI/MHnhNwxDxS5Q= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8f3e1d5d-2ad7-49df-4a8f-08dd8ca6d191 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2025 14:03:46.5833 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: fPRurLRbG3L6zq4Uidj2Q/ljPBE/8aaGapffDTznN2qJRvNvvrbQ4Urw+CzLjuR6wTo1F2bcfR5U2HvvZRkQQWc0eg9D/bz5xH4PVgJXog8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB4959 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-05-06_06,2025-05-05_01,2025-02-21_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 phishscore=0 malwarescore=0 mlxlogscore=999 mlxscore=0 spamscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2504070000 definitions=main-2505060136 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNTA2MDEzNSBTYWx0ZWRfXxzqZyD/tHvrj isO8yB5f62ptl0icvZ0gZ77VEa2UkDiw6EfrYeIaIcSz5B0+GUv83UX58GnLT9ENVs84DCq6Ntu hjIfzyViTGGMF228vLnCaTa4OZm3FT+LxZ0/7sEeIOxdyuwSNhpG5bj2tLTzkpKhqTQRORGKbou TtRzHlTftgj68gMm7bEMELCzuAk1kSlJ1YDxEH49X33V66SERxnvHb6hYg9VqaPzZyQWp1QnIWE AE5B8cZPHRvJEp30fEk7d6jtgCZua75EeifakxSNmRden7sMob0oyr/acRqUbZBohL7/32xS4aE Xs7gsJB0ueiDbZrekgl2KJ4aqQzWvIdFQhdobMKJ4sG82E3lEOZGJSsUhTplL2i81Or/FTQWrvN VqnCOC9mFq99qIGfO9mMxdStZutLBFgGKYniy2RwXBKVCqUyydzgey1jOrDu6YUT+rLIhKsc X-Proofpoint-ORIG-GUID: zPWOPdAuxW3nyf32K7bY5ty8wG718-Xm X-Proofpoint-GUID: zPWOPdAuxW3nyf32K7bY5ty8wG718-Xm X-Authority-Analysis: v=2.4 cv=eYw9f6EH c=1 sm=1 tr=0 ts=681a16c9 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10 a=dt9VzEwgFbYA:10 a=GoEa3M9JfhUA:10 a=VwQbUJbxAAAA:8 a=yPCof4ZbAAAA:8 a=7CQSdrXTAAAA:8 a=8QNIM-f7sUFKjrUHFP4A:9 a=CjuIK1q_8ugA:10 a=a-qgeE7W1pNrGK8U0ZQC:22 cc=ntf awl=host:13129 X-Stat-Signature: zwbkfp13nuy1cpybaus8g1jw3hmxteqj X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 8E13BC001C X-Rspam-User: X-HE-Tag: 1746540260-687634 X-HE-Meta: U2FsdGVkX1/pG6e011w/jewxfarH6+TQTjZmEuz7OVNcih3tWwvYYuV2YqtxrbZKbpCwW7X6ZqBH2a61QhMf1ro/L5s4ge27FOZXno3kbnE6WuoMQY1tR/EEBxxGeBlxAdL18QVVLzuwa90xhv3fcCmxqTPnArAgKJ+8jgyAY0JwRDkzO/uhcUx+DMTHzeFq0+tXrheQebUR8zWpqYfMAKJ2GOg+5hnFBmzOOgiPw3wQHAWcePUc+Eo7+QmwZt9ghunhYolWTZixM6RaEkSStppSHwlXbzV18hzXfva2CxqtBJf4LKAYdjDJkcMs4DL4Htvp7/9yqtS/c8k5DOwv4GzRXH2YcxeTl3XwifU6hFpf1g0Al+OoTOUBe3Cjhi5bOJBKuIVPAg8syeR7Uz0fAUhR5BUZuhrPa0N4UfcYQfcf9DeyXXTLMoB7kXo/uGaYkM8FGnMdIOkmEHqI4zD6k3tu8hHiRAF8R6CfJ5il3JsfVZq9H4rD7XZcLLo0C48hmxo/ndhPhQ4H6TAsneHbfYqyquBrpILpCF1mym3OfnDfLeOydSs4WhXGQUng/OGQUOlve6HTz18/98iWeRgrnsB1zfyM56XbRm6YDGid9Q/7AlHszWzgPqxQd7eWhRv0QTT0kciyrRYyk34bSHx/XapSj4vKMMcXOpZhSgvq6Lcur0okBOAJkkNlvCJQ8nUv+Rz6qryMJ3MdLB2OdelGwQPdcCTm5Nu0bPrx8nV/hANjJGH0gCxbapzyzh93xQTT1HPBP22xNYXucoLbyMv4tvYq6I1GTyiLGLX5bwNjjLaWMshuKID3qBEZQm1W2DSOBYg5Gzj/V8QL3x+iumOpXCu5JdhWU0BJgxQu11RhlcVfngCghhcOeWqZoA8wsolJCgxi6QYOXfTTkHVjIw721OJmrqIcSN1etjGm2It2KkOrtmUKGlPgQmiug5ZgBx4O4N9wCUNcwQEp4D4ifHs z+WtsuMS sYMf3kNdIB4sn0um+3fDctKdggFVA+kBAVCFA5qV4PSQXZI7VxXPJfVcAImbpdhIfRqLEjxXmuVAGLPcN30NR+uhRJzCRg/UafKVZphzK+6MV5IjAgpfLkGaC8PqsLlkJK9KFfBW1BuDCMp2bCoS83vY3z8o+8Nodjj2n8lrNOwrl9T3s250Y53mAy4dhFsthG1WgaI0fXO/PBR5mjAWwz7JO7V41Q55YoEWtRh4EJaMZEARwvKmaL+btfWdJeh5MYJLq6IwNvmAuVQY7xOdfSDrbIbn5gFEnYhLiaS+hNfZyRn3w3s/m4ZQCndAE0plGkghqOHAqL66C7Ls4JrxZkVQwUGCVZxX9wSLpXBOvQwhVRVpjCCJVpbTjKbVmh4Lm0RBBBGwK1pRTT81WkZbKA6GYaMJRdzG4pGZaDa0/5aumD9PROP08CJRBUZmRhBBdtOOeyR3EpACmHmkcKzcFhO/8pfB+BSrX7T35zxkpJkwB7auwb0vNvelK2ECuf//Y5KcakuFOshQeORYCSwc559Hh50rxvLGZJZBLwHivbAcUwcTbwq1fv6J3wWI/Tta6wN7cUIc6yltaa6a4b4h81bd4ylvjdhE9vhbrQYVjlc2U+E3jrM0oB9R4fVX0XucPgRWtvv6nbU+6ZvnRqBiTIqoQWrYl5+uigjwDTqDfmJt2cSbjbaAXImd/8Y8YaMpkzHxDU29Cqik9fZQ= 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: List-Subscribe: List-Unsubscribe: On Tue, May 06, 2025 at 02:49:04PM +0100, Lorenzo Stoakes wrote: > On Tue, May 06, 2025 at 10:30:56AM +0530, Dev Jain wrote: > > Use folio_pte_batch() to optimize move_ptes(). Use get_and_clear_full_ptes() > > so as to elide TLBIs on each contig block, which was previously done by > > ptep_get_and_clear(). > > No mention of large folios Sorry didn't finish my sentence here. I suggest you add more detail here. Again the 'why' and what is this for etc. etc. Equally I don't think having code that seemingly randomly invokes batched functions is a good idea, I think the relevant logic should be separated into functions that explicit reference large folios or should have comments explaining what you're doing. You can see some of how I separated out such things for my MREMAP_RELOCATE_ANON series at [0] for instance. [0]: https://lore.kernel.org/linux-mm/8ca7c8219a2a0e67e1c5c277d0c0d070052de401.1746305604.git.lorenzo.stoakes@oracle.com/ Thanks! > > > > > Signed-off-by: Dev Jain > > --- > > mm/mremap.c | 24 +++++++++++++++++++----- > > 1 file changed, 19 insertions(+), 5 deletions(-) > > > > diff --git a/mm/mremap.c b/mm/mremap.c > > index 1a08a7c3b92f..3621c07d8eea 100644 > > --- a/mm/mremap.c > > +++ b/mm/mremap.c > > @@ -176,7 +176,7 @@ static int move_ptes(struct pagetable_move_control *pmc, > > struct vm_area_struct *vma = pmc->old; > > bool need_clear_uffd_wp = vma_has_uffd_without_event_remap(vma); > > struct mm_struct *mm = vma->vm_mm; > > - pte_t *old_ptep, *new_ptep, pte; > > + pte_t *old_ptep, *new_ptep, old_pte, pte; > > Obviously given previous comment you know what I'm going to say here :) let's > put old_pte, pte in a new decl. > > > pmd_t dummy_pmdval; > > spinlock_t *old_ptl, *new_ptl; > > bool force_flush = false; > > @@ -185,6 +185,7 @@ static int move_ptes(struct pagetable_move_control *pmc, > > unsigned long old_end = old_addr + extent; > > unsigned long len = old_end - old_addr; > > int err = 0; > > + int nr; > > > > /* > > * When need_rmap_locks is true, we take the i_mmap_rwsem and anon_vma > > @@ -237,10 +238,14 @@ static int move_ptes(struct pagetable_move_control *pmc, > > > > for (; old_addr < old_end; old_ptep++, old_addr += PAGE_SIZE, > > new_ptep++, new_addr += PAGE_SIZE) { > > Hm this just seems wrong, even if we're dealing with a large folio we're still > offsetting by PAGE_SIZE each time and iterating through further sub-pages? > > Shouldn't we be doing something like += nr and += PAGE_SIZE * nr? > > Then it'd make sense to initialise nr to 1. > > Honestly I'd prefer us though to refactor move_ptes() to something like: > > for (; old_addr < old_end; old_ptep++, old_addr += PAGE_SIZE, > new_ptep++, new_addr += PAGE_SIZE) { > pte_t old_pte = ptep_get(old_ptep); > > if (pte_none(old_pte)) > continue; > > move_pte(pmc, vma, old_ptep, old_pte); > } > > Declaring this new move_pte() where you can put the rest of the stuff. > > I'd much rather we do this than add to the mess as-is. > > > > > - if (pte_none(ptep_get(old_ptep))) > > + const fpb_t fpb_flags = FPB_IGNORE_DIRTY | FPB_IGNORE_SOFT_DIRTY; > > + int max_nr = (old_end - old_addr) >> PAGE_SHIFT; > > + > > + nr = 1; > > + old_pte = ptep_get(old_ptep); > > You can declare this in the for loop, no need for us to contaminate whole > function scope with it. > > Same with 'nr' in this implementation (though I'd rather you changed it up, see > above). > > > + if (pte_none(old_pte)) > > continue; > > > > - pte = ptep_get_and_clear(mm, old_addr, old_ptep); > > /* > > * If we are remapping a valid PTE, make sure > > * to flush TLB before we drop the PTL for the > > @@ -252,8 +257,17 @@ static int move_ptes(struct pagetable_move_control *pmc, > > * the TLB entry for the old mapping has been > > * flushed. > > */ > > - if (pte_present(pte)) > > + if (pte_present(old_pte)) { > > + if ((max_nr != 1) && maybe_contiguous_pte_pfns(old_ptep, old_pte)) { > > + struct folio *folio = vm_normal_folio(vma, old_addr, old_pte); > > + > > + if (folio && folio_test_large(folio)) > > + nr = folio_pte_batch(folio, old_addr, old_ptep, > > + old_pte, max_nr, fpb_flags, NULL, NULL, NULL); > > Indentation seems completely broken here? I also hate that we're nesting to this > degree? Can we please find a way not to? > > This function is already a bit of a clogged mess, I'd rather we clean up then > add to it. > > (See above again :) > > > > + } > > force_flush = true; > > + } > > + pte = get_and_clear_full_ptes(mm, old_addr, old_ptep, nr, 0); > > pte = move_pte(pte, old_addr, new_addr); > > pte = move_soft_dirty_pte(pte); > > > > @@ -266,7 +280,7 @@ static int move_ptes(struct pagetable_move_control *pmc, > > else if (is_swap_pte(pte)) > > pte = pte_swp_clear_uffd_wp(pte); > > } > > - set_pte_at(mm, new_addr, new_ptep, pte); > > + set_ptes(mm, new_addr, new_ptep, pte, nr); > > } > > } > > > > -- > > 2.30.2 > > > > Cheers, Lorenzo