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 81E3DC83F17 for ; Fri, 18 Jul 2025 17:05:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F041D8D0002; Fri, 18 Jul 2025 13:05:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EE1028D0001; Fri, 18 Jul 2025 13:05:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DCAB38D0002; Fri, 18 Jul 2025 13:05:41 -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 CD9898D0001 for ; Fri, 18 Jul 2025 13:05:41 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 8458810C1E1 for ; Fri, 18 Jul 2025 17:05:41 +0000 (UTC) X-FDA: 83678012082.26.5CCB969 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf30.hostedemail.com (Postfix) with ESMTP id BE8DE8001C for ; Fri, 18 Jul 2025 17:05:37 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b=LPrc8zqW; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Kb18Ad3V; dmarc=pass (policy=reject) header.from=oracle.com; spf=pass (imf30.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@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=1752858338; 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=I3cLRX9c/QMgcbKolhaGa1V7scMC7nHHF2MrrOeUgrE=; b=kvJr33LAXly0Xk0pv5N1PVh3xw6CbtXyWr7CfwrFAGvYN9TM93RmB8EUDB/LtX6benQpFy e65Syy9IEcoSpigTPiA/HgCoduPcKtcJn6/U3/XNg8DzAOh8zSOxAwtbqze7s3pFZwhm4w Roe0jyZFeZ0wwkWdU9LGsPT9vASKpSk= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1752858338; a=rsa-sha256; cv=pass; b=rh7wpIGEX41+k8eVkY+IJqgWN68wMZ/C3V+RgebB8nsqqmXLMg2Piqv8Ofg/Vses+b9k/F RxdaqX6z2Jy9t4MI/ydhrlI8K99bILrXqN6esB/RAoJqp5jMnKrpl/oe0102hLBGVYRqvn DIewO2QMm5VqeisUD26zqYbKUAj8V7o= ARC-Authentication-Results: i=2; imf30.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b=LPrc8zqW; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Kb18Ad3V; dmarc=pass (policy=reject) header.from=oracle.com; spf=pass (imf30.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56IGtlwK003457; Fri, 18 Jul 2025 17:05:17 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=I3cLRX9c/QMgcbKolh aGa1V7scMC7nHHF2MrrOeUgrE=; b=LPrc8zqWgtb+pnzqsoj6kpy4QjK9c5l0bg 9/8BwadXwxQUsHOMbu6h0lEX/PzRs9PrFcQldyGKCloCbsH4acYZf/IeiMjUwuSz jcwMTOAll7FHIu7B59ZuyzCSKXGSzmaLe9Kk7+kKu4w/0poSZkP93SEGKHM3K+sV KoywL3VKmv8rVeVOXYPOZyJDgtaqRwu76FGRGc1zmEU/WjzCj4FL54YwMh3iYIU0 C3LjnJ8a3xa4EaYvlMb9LIsYKis2ztGknXFEEN3lwo/sFXlLY5nMsv6oIZfhWreu UcGX+mCJ6gLKdCNX+QY6gewsDhKVTsHtZYyZikMIwvpgUPNCdIIQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47uk8g5jpw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 18 Jul 2025 17:05:16 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 56IFcome028985; Fri, 18 Jul 2025 17:05:16 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10on2089.outbound.protection.outlook.com [40.107.92.89]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 47ue5e0nhd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 18 Jul 2025 17:05:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HB5NAVxvAWhqyPsqJ9y1PQscCTIXsks62K6b2rA/PrpNsVxrae5V4w+CAUfOSzM6Z4wtz1gO6ccm7j3PshaQS2CEx8y/y5iAEtp+r7ynvbZkep54X83wdEdlYCdQkbkBXhFu/EkeUBiJYrcN9r6RHXN6KfoIinUxkoaBxpz4Cm+7cAIMNWhXpLHD+hnOsD56bdiMnMdUlaqXBKhvI5jjdQnxZRnnPsBRj7JWeYhWtJS2fPXCSujJgQXJjsgkAPDLQwN4cqSmL+A5Bl0FjghvOklrt0MzecL2yfyI1h4+xH6EuYZchVcv2l9dNEg2OACJs3m+zowAoMQjcqKi0p4j0Q== 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=I3cLRX9c/QMgcbKolhaGa1V7scMC7nHHF2MrrOeUgrE=; b=p74Mfi/+nQxZ6mbYoU3wpxBmU3pGV3lcuprxwCDdEukNlFTnSMaRUejVKb+QAe1P1GUWOegVCWVBaaY8DbuoPNS57+6WgkMDP3ViMk5vq1NQi/DI6RIJ4eRLFur8WqXQG/T6XkbjQH0y6C3d5yy4WtkTsAvuwKzJ+Gst5kJuhQhzrPYrfkIPVjAjfHpxydOlDJL2flGEl8pLj9owSaqMWgPETVAN/G3ur3q+BMijnms3zYYDNa16/av/Gg6aE8MNeWtxz8v/I8M0g7l8FaBGmB7AtY4NsjZ2wBfXuKr5TWwvr8HyMift5xUAO5FVU3Cm74jCKDG0bLHAtr3CkGtnYw== 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=I3cLRX9c/QMgcbKolhaGa1V7scMC7nHHF2MrrOeUgrE=; b=Kb18Ad3VwKqRGmqosKkILzqmCSn5StKyWfKGm4RVw88gejStowcEx0j96GHEghYpzpjhmF0JA82vRRCfaMjP4kvEbFCm/wDBrwsKpF8NOWVeTOii38Je1LHtqDM48D/XadHnAi4dhQd8KZEdej+Nc1Xv1jVhlYXjT/FgqWBO7Ws= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by SJ0PR10MB5803.namprd10.prod.outlook.com (2603:10b6:a03:427::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8922.41; Fri, 18 Jul 2025 17:05:12 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%6]) with mapi id 15.20.8922.037; Fri, 18 Jul 2025 17:05:12 +0000 Date: Fri, 18 Jul 2025 18:05:10 +0100 From: Lorenzo Stoakes To: Dev Jain Cc: akpm@linux-foundation.org, ryan.roberts@arm.com, david@redhat.com, willy@infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, catalin.marinas@arm.com, will@kernel.org, Liam.Howlett@oracle.com, vbabka@suse.cz, jannh@google.com, anshuman.khandual@arm.com, peterx@redhat.com, joey.gouly@arm.com, ioworker0@gmail.com, baohua@kernel.org, kevin.brodsky@arm.com, quic_zhenhuah@quicinc.com, christophe.leroy@csgroup.eu, yangyicong@hisilicon.com, linux-arm-kernel@lists.infradead.org, hughd@google.com, yang@os.amperecomputing.com, ziy@nvidia.com Subject: Re: [PATCH v5 3/7] mm: Add batched versions of ptep_modify_prot_start/commit Message-ID: <9e0382d0-0a21-4b79-bd07-374729358ebc@lucifer.local> References: <20250718090244.21092-1-dev.jain@arm.com> <20250718090244.21092-4-dev.jain@arm.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250718090244.21092-4-dev.jain@arm.com> X-ClientProxiedBy: LO4P123CA0561.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:33b::10) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|SJ0PR10MB5803:EE_ X-MS-Office365-Filtering-Correlation-Id: 53d7c306-2504-489d-cce0-08ddc61d4272 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?NNNCQSqyKiChHYfQ5vkeDuMsa0KxU1C1Q1DP6ZZDlFs0gA0Y/W1fmjb/9v/5?= =?us-ascii?Q?5ATXH9eNKmFVK6rCSlfH84mG+wGBigDISK0kDRqYiM5dQJRG2aSnI+DlOh4E?= =?us-ascii?Q?CI3oX+tzaL5DU1KOrALGKVIrmMadGbcMNit1l28n1jn1MmKFbKT+Izonr2hE?= =?us-ascii?Q?o0/OpwBEFUS6cCHD2ZZmj3tEm/MMTue2jFxyBIo+rZDo2C+/WZ2ODMlukbwN?= =?us-ascii?Q?TDCvtgiBpFzFa0zO4O8j8VVLGW5mMQLZaYxywv/gKaxTyWNaFCCv5i+VYGUd?= =?us-ascii?Q?hc2SZZwmfAcacEQfJOXp3qcMLqDGVRbg0pGpQpVf5DlFSffPMhkRWAMMxUIz?= =?us-ascii?Q?hEOJgc54YToiPnbK9LR990rCfWr9v9fTF7VCNcNQ+nXR8Gr53nS9AeQXKT55?= =?us-ascii?Q?8Tp/XyYIgP9cVi1Wd6VYnzmVuvtWYOMOBsmUZ/aUyX1dqRFBY7eo6vXo1hZa?= =?us-ascii?Q?8fPJXjOtDgTYDieo1j9SK8fpcsLKIizpsYtPcAJLDiQHf60qeW/Wx/zNq/ly?= =?us-ascii?Q?CF6SDqQ1gALEXMNKxx++VuCUi7gxsr7oIxc7GkOrMwe59g7NilcBIfpDzQJ5?= =?us-ascii?Q?8jSjtlGbjVzLtiMDsn4b/x62jo4TK8bVv74SZlELf0qD6b3r3OyrWEDIM/eT?= =?us-ascii?Q?qq4zaGYRrBt2PGQiavZkJc4wac7z62b30ueitEahaFEfKUUQD/CxQUCANeYy?= =?us-ascii?Q?ymsIbM1/Tytmd7B9ZawAum5bS/0Cvp1/EAAk+HQGEDztD19rTKIQzF1hmTeF?= =?us-ascii?Q?Z0vaNfzPq+WXFormbBcGUSMoPR8wYK340tNlmC1woJIUei19fCu0sTYrIvZ3?= =?us-ascii?Q?EMdz7KVPohBKsQ8qTnHXJjkssYpVgbeHDbgFCzrMRMMHSAmBPPvOXo9SI+TG?= =?us-ascii?Q?Qf1Hwb1WCv1p4k5WhvnaSzh1k/DX3OsBVslkdyoyYtIvOWv7WGyH4KBLcfZb?= =?us-ascii?Q?3k3FACXVwvNe/dfOvE9PhjSQ5MFE3Eqwl0bGuPGAfht4KsOyK3mpIAs3oJaV?= =?us-ascii?Q?4XXBEulNYaDYFjKIB9EkPmhl/O6O/eyyBB473B5mBU/1gUcedJ2m3G9UyRr3?= =?us-ascii?Q?Tl+G5hJRgS+JZTh5pyR/+ETyOm08vNVwVmxMARXb1JV5VF5NBYTQzKuemlBI?= =?us-ascii?Q?IqIw6++G1j0AAPK9e1E45rQtvCvHNb2UQAbHGVNwzO4r2lFDIAZmNGsWOUQo?= =?us-ascii?Q?xo3JeHl1R9K4MNXz7s9Blmx98KKLwyzYvdiU85JpM8QDQXvA3hQOD4MRuPZk?= =?us-ascii?Q?+pbYf7R5+bB3IFWDWLtlVPA9UNvidAg+9YYaJsaIjwlylCVuqiim4ECacDJs?= =?us-ascii?Q?3M8jkvEgdfI40/xPa4dyiznMfkfJLfM1yyZeD1q7+8JPmSeOlVSSJutk/Mau?= =?us-ascii?Q?NaGgHd7yOuDco1mDgIyOHApN7lUmUxiZRhgZzVFexTsLuUMe+Q=3D=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)(376014)(7416014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Lctxp6zS1ILa7QQzcKJypvlRCcBV+tFOcHze9UR02dHTv6cb5/bFnWqpxYrl?= =?us-ascii?Q?MVKd1liWRY12qQ2MAcWyVtT4yMuvKbB7NWUDPI0+F4+V+gsd0wmiYlb12j8s?= =?us-ascii?Q?TJsYz3T4qJkN7nEGFSBNz1h4WcePXfI0OrXMkKagWch3YnvJHr4xUH6ejE0r?= =?us-ascii?Q?tNg2SJcbFkPaZPHBVccDp4KqSJhGpg3QSBe3dsiu1PLz0D4NIDIEp2TmYQtP?= =?us-ascii?Q?A84/UaSea4du1oUmQNEfyfuf/aekFkyCNk+DrR0D6PYxCoE8VB0X0eANfq4X?= =?us-ascii?Q?qNWlF9HFGKblkGwVfUtJkmfkm6kHzOdsvvJVxelLteuATKvp7aRYUUY2TEPV?= =?us-ascii?Q?IhuJBHzW/jF0hvFyx5sOqLXPGCDSuBHRLNpOmZ+Q/KVrv3UqzXJfg3+7Sn9v?= =?us-ascii?Q?XfRfbqI2OL3Rw8WW7a3/t1IhJPGlq55oncanTTwhn7CTma4kmvCip12a3wSX?= =?us-ascii?Q?vfpJvjhlsHFznTQxxDeE0nRM1mtqVJbxuU+JgioXQDR+m6PpaJdRQWJJ+JmX?= =?us-ascii?Q?81GjQh4GoypdG4l6yO4jq4GQV0bYYKITetaCPGYD5SP57NqKnsuK4l6SZDP4?= =?us-ascii?Q?NzonsBxINcCctVKjYQa+FIY1nAD/d1YDngdnMO5eaTSSq2JiQvNPQHf1TDk7?= =?us-ascii?Q?YrxQbaQM5gjWvzE4tZkJc4fFEO1qVrpGlr1bfHLGpkhq25sWEFkHv9zS7q7J?= =?us-ascii?Q?3aYH54kMBhPw34k6u9Fr0hHnIYvAIFNjvYBzGIUoW8v8bUQLiKAm1Xs3/3JV?= =?us-ascii?Q?78NtxqmwUc84f4zxyUpbf3hRtOSSqiRa40wogAwpRTXX12J9pZS7lYxPC9r4?= =?us-ascii?Q?C1vbAPWXZNoyGCw03ndrW+ru2xDRz4bk/NgmQeDUaECvmnps99E83iRVYlub?= =?us-ascii?Q?R7ZHbaD9aX4qCJ4xPf3DN9q0yadD3KU/2je2uBEcSML+lVXEkEvgfVGGwOCM?= =?us-ascii?Q?F7HCMdfXj5DryBbcdIlsMIPcA5/kiVDDwJBWAQFUubD0M7Zbw2b5aYW4zvCo?= =?us-ascii?Q?x3LNmyurU8OeEd4H4Nno0FSoAPbBXJ5Z63CPg2jpDXbAy3s0AxUMcd5+pDPJ?= =?us-ascii?Q?rBl7K6vppBZD4djmMQe27decxE5uDIJXRTwih4PGRBSCkX352jN6zlV76J6n?= =?us-ascii?Q?RandR+9vnTbm3SUzkDSwdNEAYlmuS5FwAYvzDJl8KMYHzNN6HjKyqAwZcR/q?= =?us-ascii?Q?VUTuh5H3hJdymWWhd90i9XXD9ALHVfVX357lzkMp1kFPWqP22Z1/0IY3DOR2?= =?us-ascii?Q?rKhpWPPg4uvQIT+hphE0ty4a0vjDh/IYGzywt3E+PBZmEDBMLxfwXi88QXMC?= =?us-ascii?Q?mI8O4bLLNw+04YgB23A+Hyamzz7onwhT+u7Po0zqplWvAjgWCy+N9UAmEfIl?= =?us-ascii?Q?wvO3fSwpJTuA0FgVvLRzoT4+q7icRhJFv4WIb90s1KBu7QXGtAfsgFvuzYaL?= =?us-ascii?Q?Lsgt1p0l+Gff/pKNv1o5zAljLkXO95bL27qgqFJn9W7cFSGMgmS9/3zOUpNJ?= =?us-ascii?Q?2DIxIg+WZtWtIHK7mwzxMbs6IcLGeW/48ljhxZrftnWPut+uLTHqVbHKeVcx?= =?us-ascii?Q?YGQ9ig9ebXDhA+qWp9d9xYTExWLdsLNRHX0eEwyiAm//2nrCs8JGsXeqzvLo?= =?us-ascii?Q?OA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: dkHmWQgP4Ji4M1hA7PDGtZkXrfHYtFYKcIa3vBv/az3XF/doVpRTMHkjVZp7624+jsQIfXh1haKsxy2ImQYT/tZohqo6VlRJZ7nSUFCBlcQ2gKW8a+mO5qqtN9xUYLoX5U0XQWy8mexB3uOxYBM6l0uv41m9UGpggfa17QOhKkbyjpMN43QQT8YNQAEfGMhsl7d+r4v4VNZLmwWTWRSJmQxKjkkq8BvYgE1F/sMOPkqlSYf25FmtZwnmOKMxTEj0PFub+iz+EK9MinaU8XqBasuS+rDaD4Qs7mAl388IAidZIdF7e6XQemKpFA8xH5YNrpgnAAJtS8Yu+wuIrUDnZDMUNqrTW65YfrfU/TqkRRT140le/1HisDAxyiH1sEFQmxGlfmKh/02Ssn7Ofh/NbXML49VB7kknb4UWHXyFYp6Kxk5TPoyMHDnNIbHDG5dj14J1fDsGHys3VM/FP95v04AYeyb6Tn+foBYxiwFVg61AYw5A+RoMWdYWqpVEDG06IZTTJzHWNeN6qI1IJouUWFmUqE5yoSnEttUtrjkvM6bqgKWDTLf/K774NW89oa5YzRvVOQpJnyYkq5BPpdNeYqKZF9WeZXzOe9cpj1oRxRo= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 53d7c306-2504-489d-cce0-08ddc61d4272 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2025 17:05:12.8444 (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: BisX8XI6BDKc4ijDbdwsNdC+H2oCayOxnerPpXd1DcvdgqA/S9HXO4Nq+DCaLwUVtj3ilYwKyDaQ62c6UJJWzc1EO+QQb9wDLdOrXybIY0c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB5803 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-07-18_04,2025-07-17_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxscore=0 spamscore=0 suspectscore=0 adultscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507180135 X-Proofpoint-ORIG-GUID: zHwDHu1CSIoasOS4voAQEpIXevj-JJWR X-Authority-Analysis: v=2.4 cv=Of+YDgTY c=1 sm=1 tr=0 ts=687a7ecc cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=7CQSdrXTAAAA:8 a=yPCof4ZbAAAA:8 a=VoO9Cytc3JEJLQE9W3sA:9 a=CjuIK1q_8ugA:10 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-GUID: zHwDHu1CSIoasOS4voAQEpIXevj-JJWR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzE4MDEzNCBTYWx0ZWRfX/dlM14AunnjY 1UT6kK4VXi5sH6x0ogD8GOUxw5d1MMVW4pqR0gsdHw15L77sg1242dsLs5q1aRAJ/jmZkEYxJe8 4rFQBO6Q1EwZqUQPiHh3+rG8cKkFyFv+RJJ0QP6e14n5l6fGp6s9mLQSdl6qd2SaDJinm9itAby d8u7lqAXD7282RzP+04IkTzVqqzNGAR8X3vPOCgnDvZXOHYyxtTeQMXw8Bawm0valztXFxMgSeT 6VBLS04MfDkr0GQY61Y3mK418nvvSc9ZMDgfQTPBMtcbZzgjU08MXc9xNd2VwIcDLO2p6OB7972 FG4V8p6tTYc0ItuLkWM3bS99eDoS1n4ppKckM5/adc/OYatfmjLNhuPmADQRxlpqcQaxmePtzj7 ypNDX6zHLSu2LxoJG+AHSr61ICWbCCzB774hhgqeHKL8hqsOWuh7YgE3fxdgTIaUxijFfxBy X-Stat-Signature: e6z5i58rh34f6f95gfinpwety63zw8ki X-Rspamd-Queue-Id: BE8DE8001C X-Rspamd-Server: rspam10 X-Rspam-User: X-HE-Tag: 1752858337-653218 X-HE-Meta: U2FsdGVkX18MIXLGaD1Mze/8L96egzbDMDf1KQPCsd9Eoiiira4AqUdzRLCFkh2iujLAH3m+4xUw/dstnZI7ncG+G/WJg9+2bCGae+8p1YVfxFCkFANrF7QT0TjkJJyxjNjUJvWnb4cKjzEgRX6HeW7+/5l/FHkPP/QRreejZ72jykaKw2n64QoRNfdOgRjfi3WezbB2eBjTFA19XACUJPovx6NGNm0+PFceEQ5mP8jn15VLavBuEIESEm2T1DyLMEEsbyjRYuzsR1mNAL8JGG+vWrwymnsHOmZ7HhIwuRbKDwFK9GyOqFTbcicmd5S3tc4rnY0cWqX0p0BTITJoj6XzXxs7wdFnflQIAeEeJsDHhi4gKILu1nIpHBunXX52o0mut3XQFhTDEQzIRbADFCYSjPXyc85jqUOAWELFziU66BeR688v5Ayoh3T2evw2n6775zQDL6K2h10X2Al1dZzrXdFQQKsnMxkQkgmaJ8NxFMdxCSt4rwURinea1brdUujlfXUcwskzQWozsyGEu93TfI5fnFblzydSbO2XJXlehIQAMcFd7Fas3faN4Hw3FSzMJ5AfDghBVwBheegf6UX3IhQk8SGXwB90GFrMgzU6lCdWW1fsxJm9ScO10LQaeZ13xLHbNXgvMxMW3mRhVN5dcb7F079bgixkCmkQNH7PMUr9/NaLHee/cd//yz7nnx7O7nwwr+/bktcrZ2O//8N1j5CwNWQT7VDewrliBWdLFnzm9cg+VaFF3K/A/s2XHTiO21cA7Q5B2GwYoBTa8oHwCYTBJwmHPKxX6o0uv9nP0AL5HOmM1pZuNd0n8H0lQGNC0zbTWdCd2GFwuWGvBT7nuy3+klPxHa+VoKF3KOTblUyj4Wz7AwapjgFYt4tBba8iBBhvt64iOFvNvaFyCZaoOaUUn02kHTG+LBzQZZrol1QNbiXbXxUOq08RRsPYmJvMewRRSC/bJG1xnLs 8nQxR03Y suxGAMLUbgYseayOQnE6MzmhJE5uDCJAIQe0DenCDE6YyoZwIDnR3EzPV3idY165uDjKdDOlzhX4yK7TC6VozGRucxKSj0Bt0s4mPevPgH0qq7kZq163483TWGJsniTTBdtxbCMPd1HFnUd7NDktRhhRmfy5GtTVJ6v4Qb9TU2Kk676Q+6Hk/LY5n3Mm0gCpi/FDxwJWfZiyu1VdZojeAn+ULlWqH9+IOyU9gPcESWMaJa2UVgH5o5ICZ/nkId9Gv/Ev/9B+xJJnuKE8JpXCW0gm+/tTBitxnI+9JolY0SA/yQssoXhEVTYSBFmZfTomR/EMkCp3gkb2nwUtfGJeRGZ6j3FJFmjzgirxSbqoZd0bhmD7HWPk/KcQa6nOJuH/jHuztA2qARGV5ex3sNm/83Z1K4Cnqzk/OpveOqQ29KhnKBqW0JgIgDUbVao8bRxLLOG4qLAC8Xr1Y5hqjSLDisXRqWBDVLb9HOSCaZMLJBoBarkDenUrVNBpgzjpB3J5zm2dLHYYshYg+Id2ecpV9lhhT5wVHm3v81HfDa6btOynFc+Yzo4QIG84G8IhXX6Eopgqv1bS4y3H4pOFN9PxLAyxKiz8+zX26jyntiY+zR8he1ucqETE5ctyb8RCMD2c03/1Y/e91Ps0l+zGt75b0Y3yLVesIhIhkqakEd7vUncyH3c0mJHb0jhPr8ZkRyM93wtOqn0lx+wc9yG+4RFl7oayrnvPjp8iSsaOjOnEHRtbwtFJnSrgtINe6xeAumle8+GrdPeDcGOS4yqrdIqH4+xXgwrQxoZEYkoCj2DK4Hs3tTMg= 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 Fri, Jul 18, 2025 at 02:32:40PM +0530, Dev Jain wrote: > Batch ptep_modify_prot_start/commit in preparation for optimizing mprotect, > implementing them as a simple loop over the corresponding single pte > helpers. Architecture may override these helpers. > > Signed-off-by: Dev Jain LGTM, so: Reviewed-by: Lorenzo Stoakes > --- > include/linux/pgtable.h | 84 ++++++++++++++++++++++++++++++++++++++++- > mm/mprotect.c | 4 +- > 2 files changed, 85 insertions(+), 3 deletions(-) > > diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h > index cf1515c163e2..e3b99920be05 100644 > --- a/include/linux/pgtable.h > +++ b/include/linux/pgtable.h > @@ -1331,7 +1331,9 @@ static inline pte_t ptep_modify_prot_start(struct vm_area_struct *vma, > > /* > * Commit an update to a pte, leaving any hardware-controlled bits in > - * the PTE unmodified. > + * the PTE unmodified. The pte returned from ptep_modify_prot_start() may > + * additionally have young and/or dirty bits set where previously they were not, > + * so the updated pte may have these additional changes. > */ > static inline void ptep_modify_prot_commit(struct vm_area_struct *vma, > unsigned long addr, > @@ -1340,6 +1342,86 @@ static inline void ptep_modify_prot_commit(struct vm_area_struct *vma, > __ptep_modify_prot_commit(vma, addr, ptep, pte); > } > #endif /* __HAVE_ARCH_PTEP_MODIFY_PROT_TRANSACTION */ > + > +/** > + * modify_prot_start_ptes - Start a pte protection read-modify-write transaction > + * over a batch of ptes, which protects against asynchronous hardware > + * modifications to the ptes. The intention is not to prevent the hardware from > + * making pte updates, but to prevent any updates it may make from being lost. > + * Please see the comment above ptep_modify_prot_start() for full description. > + * > + * @vma: The virtual memory area the pages are mapped into. > + * @addr: Address the first page is mapped at. > + * @ptep: Page table pointer for the first entry. > + * @nr: Number of entries. > + * > + * May be overridden by the architecture; otherwise, implemented as a simple > + * loop over ptep_modify_prot_start(), collecting the a/d bits from each pte > + * in the batch. > + * > + * Note that PTE bits in the PTE batch besides the PFN can differ. > + * > + * Context: The caller holds the page table lock. The PTEs map consecutive > + * pages that belong to the same folio. All other PTE bits must be identical for > + * all PTEs in the batch except for young and dirty bits. The PTEs are all in > + * the same PMD. > + */ > +#ifndef modify_prot_start_ptes > +static inline pte_t modify_prot_start_ptes(struct vm_area_struct *vma, > + unsigned long addr, pte_t *ptep, unsigned int nr) > +{ > + pte_t pte, tmp_pte; > + > + pte = ptep_modify_prot_start(vma, addr, ptep); > + while (--nr) { > + ptep++; > + addr += PAGE_SIZE; > + tmp_pte = ptep_modify_prot_start(vma, addr, ptep); > + if (pte_dirty(tmp_pte)) > + pte = pte_mkdirty(pte); > + if (pte_young(tmp_pte)) > + pte = pte_mkyoung(pte); > + } > + return pte; > +} > +#endif > + > +/** > + * modify_prot_commit_ptes - Commit an update to a batch of ptes, leaving any > + * hardware-controlled bits in the PTE unmodified. > + * > + * @vma: The virtual memory area the pages are mapped into. > + * @addr: Address the first page is mapped at. > + * @ptep: Page table pointer for the first entry. > + * @old_pte: Old page table entry (for the first entry) which is now cleared. > + * @pte: New page table entry to be set. > + * @nr: Number of entries. > + * > + * May be overridden by the architecture; otherwise, implemented as a simple > + * loop over ptep_modify_prot_commit(). > + * > + * Context: The caller holds the page table lock. The PTEs are all in the same > + * PMD. On exit, the set ptes in the batch map the same folio. The ptes set by > + * ptep_modify_prot_start() may additionally have young and/or dirty bits set > + * where previously they were not, so the updated ptes may have these > + * additional changes. > + */ > +#ifndef modify_prot_commit_ptes > +static inline void modify_prot_commit_ptes(struct vm_area_struct *vma, unsigned long addr, > + pte_t *ptep, pte_t old_pte, pte_t pte, unsigned int nr) > +{ > + int i; > + > + for (i = 0; i < nr; ++i, ++ptep, addr += PAGE_SIZE) { > + ptep_modify_prot_commit(vma, addr, ptep, old_pte, pte); > + > + /* Advance PFN only, set same prot */ > + old_pte = pte_next_pfn(old_pte); > + pte = pte_next_pfn(pte); > + } > +} > +#endif > + > #endif /* CONFIG_MMU */ > > /* > diff --git a/mm/mprotect.c b/mm/mprotect.c > index 97adc62c50ab..4977f198168e 100644 > --- a/mm/mprotect.c > +++ b/mm/mprotect.c > @@ -204,7 +204,7 @@ static long change_pte_range(struct mmu_gather *tlb, > } > } > > - oldpte = ptep_modify_prot_start(vma, addr, pte); > + oldpte = modify_prot_start_ptes(vma, addr, pte, nr_ptes); > ptent = pte_modify(oldpte, newprot); > > if (uffd_wp) > @@ -230,7 +230,7 @@ static long change_pte_range(struct mmu_gather *tlb, > can_change_pte_writable(vma, addr, ptent)) > ptent = pte_mkwrite(ptent, vma); > > - ptep_modify_prot_commit(vma, addr, pte, oldpte, ptent); > + modify_prot_commit_ptes(vma, addr, pte, oldpte, ptent, nr_ptes); > if (pte_needs_flush(oldpte, ptent)) > tlb_flush_pte_range(tlb, addr, PAGE_SIZE); > pages++; > -- > 2.30.2 >