From nobody Fri Dec 19 14:21:06 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 84EA91DE2CE; Mon, 19 May 2025 20:53:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747688019; cv=fail; b=Tm8SOCGkEn5hwoJgJARltJtFZx6xoElZ6u2fNGbzYWemssHDSpTq2suFUC/buo6tJdiCg0gPpyKJ0m4b5kGngMiM40TeTCauAgDf14s3ZGDJpG1V0eKTxCgyM5LVJ+DkWTPGNbMHzcQNKLEikZoma7rQYFsapzbIGq+TqvV5pJc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747688019; c=relaxed/simple; bh=Re67SleAxBNnx2K5PEB9RlXYZUe555sGGRUCb59364Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=arCMpT6//CvNdnh0jMWb4eloaFVSFL6Haeh3hdW/y80GoWCiwPS2UGx7rwCKy2GM0tv+CsM6eX9rewlL9Qz3F9QWICeJB8INMFM0jXmC2QiNhviBZKYAtbVMJ//dMGTFwQFVfGqsfmzBIVL6i91d5S3tdoFM3DN+jwopnxWMKyo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=XMPA9E3D; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=e3AhaGOx; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="XMPA9E3D"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="e3AhaGOx" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 54JGMo61026215; Mon, 19 May 2025 20:53:24 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=xwiYykbLjT1zx47mtE4zv1uAEKu+ZFI7Qc4MYu3r2po=; b= XMPA9E3DAAxuAnIs4KaPEvk1ipp1o/zCqkxUTmQTXyCGG76tq6mQ3W1IcMcvNH6d 5qjLB79mlQ0odw3+tBOGykBKkvL3mdH6sG8Jlm39CWypLLhGTOTnrQ0NZe/FauNS qDq2NyD5WZJpI1wtvlJGRr07aaC9YJTTsJwfgh3MzbApxyDJY9J6Mri+pnho6bW0 gR8hEQ8gODdZD5vfcxnqV81SUkZiAE4QYLsMbCbqfDOkvmnlIQim5mQzuG3jfjDc wLqbI6GuX3JJKa5XIHEc3mebrIGqPn3piMKypYUeJ5mSe/wrfZGu9PshyNsLXrdH ke8RDooVOtfUqjfnbKNaIw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 46ph84kyjp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 19 May 2025 20:53:24 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 54JIt9na037297; Mon, 19 May 2025 20:53:24 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2047.outbound.protection.outlook.com [104.47.58.47]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 46pgw7x70m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 19 May 2025 20:53:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IK0nK4ONIpBmu1sPcqiifMjUXvGkEswJXL4dcrt5y/LdF01Q9tetAqZkDjPWo4DYZIe3JVXs2VKmE8V3L99QZ+3d3XUVbzOD9PlvZlbAl/34t7RaFet3acl2QXxiDOH5oAPgpAxN5bLI1aHfOnLdWz9snLOGLcwS8Aw7Jjh1HlS6xA1DmL+dQmmWvH/Ky6a2FTuVnael5LMnyYj+v0ZQU7kHX2slcl5aITM3EwnFYaWjqDyELGGnL6IanebgyCJfM+oNrALxzNvBGMXxSyVbxXk9AjCSGf3z7V6vM9PpgkEMZtSCvzWvzBf2ht/m7Bwi2/8bfzJTjZWLmFHVQ8pqEQ== 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=xwiYykbLjT1zx47mtE4zv1uAEKu+ZFI7Qc4MYu3r2po=; b=WccU93g6TbWrSBPUPXqH0iUAVmfD4fNkY5C977vI5Z8dwiTWZFzwQ0nvMwqubUN+/iB7f7nTz4KspYpnmwCbKHg5mo+LK4WTdIeQyStQXRf84IRV/01WltxfxC1PfsndmfKTE12g6eWeLRVFPn4Li+LZfIdpkLVHQM3eBgGkzU8pUNFCvIqg/Ug8GBF7pFbxOUBJsnC1YWAB2kcCyDkHjQNIknZ+slIGFrX4wLe5P/M3eJrnymUhl4ekwsVxh2EsKmF13fc/74SzUPohgfTM/laPddNe8cgzVoyvWiV2Rz8iBz+o5dHv2Bhe71urjIis24xUAHwLProH/hkB0Hcipg== 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=xwiYykbLjT1zx47mtE4zv1uAEKu+ZFI7Qc4MYu3r2po=; b=e3AhaGOx5AoKgsEETvDYs4DO2GLPVNXUgY6l1GHTqir60Li7rctCrikzKKYrdyOWU0QjedoapXfdteta0An8UuqnHGcghklUT2oTmjjemX9vI/gUxi4O4DXzeuN/BdUNFTcV8VPfBM3b/n0iEIkOeDdNABj3BkVxup6t1IsPz70= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by SJ5PPF4B2F62DBB.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::79d) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.30; Mon, 19 May 2025 20:53:01 +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.8746.030; Mon, 19 May 2025 20:53:01 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: "Liam R . Howlett" , David Hildenbrand , Vlastimil Babka , Jann Horn , Arnd Bergmann , Christian Brauner , linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, SeongJae Park , Usama Arif Subject: [RFC PATCH 1/5] mm: madvise: refactor madvise_populate() Date: Mon, 19 May 2025 21:52:38 +0100 Message-ID: <96503fba082709bc4894ba4134f9fac1d179ba93.1747686021.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO2P123CA0060.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1::24) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|SJ5PPF4B2F62DBB:EE_ X-MS-Office365-Filtering-Correlation-Id: 0a37d98d-98b6-422e-417e-08dd971724df X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?1T1qDsjniqxuoPtMJXKbHHVEsrbdRoZnO+bS0l46c6flErwlhGKdAAWm/h9G?= =?us-ascii?Q?aTWaGLx9933mLPHh+5uFD1rSUdhvXjz+hsC00suVDj2zOc7wW39cYYRbDy1L?= =?us-ascii?Q?YjocT5lnVfnOasZh5TFYq48gpi8yO9yNopSpc2vKn6Nj3oPSnT9HQuolm4Lr?= =?us-ascii?Q?j3nR6dAfFS7bMMT4q4LZTY1Sk3Zr4Dv5OX6e0+hKEdrk6zkqPbPc7MrR+NMP?= =?us-ascii?Q?C1S86FijpnLdxwr8Z1THC8fOgs5hQy6wvnLPqmgRJdlyzAX5Vo4WI0qjsnGz?= =?us-ascii?Q?SQPRj1Slz6KE+gGDr+BaFf7kmuEE0AJSZkJdk4Bn5AP1aYd7ky91P1IOKLyS?= =?us-ascii?Q?oVgCrEM2BcRgq9h4Qr21mLO2p8CMfZiVM8Czov/jFtOtualkLudw8xorjQts?= =?us-ascii?Q?CHAza0+NXgVz8w0U0uw++zGyhpYt+WG+nWpF4WRTQ3ToJuI20LhH2GItjRTi?= =?us-ascii?Q?sOREQalGcTGU3ZGjfFQkpjN8/6hGzLmjbcy32gNnD7E/wQNwlJxJyboQPI4Y?= =?us-ascii?Q?Tnh1MalrKubbNyrdCFq8gtMKIoJfBvxc0y6KfgIuPILRdoy2VEmlNveVbJdF?= =?us-ascii?Q?1/7geLllGWf9WWc8r46B3Q5e/ebR5N8iGZH8mm2zNq6nA8T2AbNqIb4O2UQ2?= =?us-ascii?Q?vLRFA3zQXQj9jEwjFtWazAu3rxobYS9yxErh1MQ0d/XKb62E1By4EhZYcwbh?= =?us-ascii?Q?7AUdct6Uxhr0DvtmdC/ushO07fwYqD46ZW2VQcd4HyBvFwi2m0mRFhD++E58?= =?us-ascii?Q?b4a2xcqkcQenZ9msEtzk9AGsIN/6nz8kyUSfFG/mdIcjb6ONf50olD9JNGNX?= =?us-ascii?Q?HlI5xkUkrlpZ/Uv4wOYbKDaJekDcsn2WC6Uuk3vsu07bnaMZTDWuMGK5skgG?= =?us-ascii?Q?j9I9LZSiEKLFbE4l/JBmvr7esr4R0W1M12rf+u6sovn5l76zMQXrAFnn6lhC?= =?us-ascii?Q?4vLndyCepzbpoN89N9Bn+9gL5mnF4W717i8TOIfmzq4UUg+8DW96fW5gVk8p?= =?us-ascii?Q?wGqRk9wN/XFKTFRQQ+f+7cqmb6lJ7JdnYSbRA/qtOG6X/IoyNNYOLlxfVrkU?= =?us-ascii?Q?t5qUxXUVGWf0CHTHozfxkzFFzyARZ/xnHBvGUjK24uTMc/U1O6yhX7Uo/kHr?= =?us-ascii?Q?FpvPtk9YKhz7s4o+fXIgRMGcBkQjs8UTpmLLclG3CluhW1hoecBHfhIgmpUe?= =?us-ascii?Q?EJe4b2sE9tXoDqWFKAMUoX3XsoLeTIZmJNhlJLKIZvnjhpV+XkT3MXI3Iep4?= =?us-ascii?Q?BUd8WenfoYEZjx9ZehDifcZypsb6Ci3sFzjvCPOmGuv3ng2VOfcADSW/qSYw?= =?us-ascii?Q?HCStZxxN6kkotLSqpLf0vrBVYvCJanwt2b628+T59U/NFxazP+YnkTofjndr?= =?us-ascii?Q?sFYhbY05Ec2JI9LBbCQcmCezAzbfMXNwjJBjMQJfKGUXf7v46O2qzn+jVhB9?= =?us-ascii?Q?PJVOKbgnnPs=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QmZmyvTu6U4W2N/vOjQc9q7Hu+kvxXFF4pkLuhgNDyFwKcQYu8QTSY4BIJWe?= =?us-ascii?Q?5z5s4yidLFOgqekChHBTR+ShTl/5Bx3CXuXBupDY8BKBv5fQAtgUeiAeI+SS?= =?us-ascii?Q?voatWtrS2q/GQW4xQ6ngOHLSpmHxC0jS4h2iN3qa0lV5pM5yqE5Gf2NkZ9fJ?= =?us-ascii?Q?Vzu5in7eYjJZi60K92RnRAXItdGmulvdG/MkTPB4bXdAXzM3gBzbpIiiurSN?= =?us-ascii?Q?ZJFFxxEE/NlbcXvUiQtcdmMOytQDj5winVED2baT/QMiH5o6SwzmwqkKmSfD?= =?us-ascii?Q?lLRNuGsGbtgvij9KZoEDGTeaDGpQ0mmJYP5zqHQi98iaffbEg5/wP07ChbOV?= =?us-ascii?Q?v5yv8E3gqfZuyXcRU7m5a1EtzABPuXGWOFmr9ZMXpstwMOeAXFtAUAlwHbET?= =?us-ascii?Q?VCZl6ymeuC5DsiPn8Flg/y+IXjWK7T7QXq2Ga6NQQT5rBU6uE9fszmiN8y9j?= =?us-ascii?Q?xs5PtLMaDwX6+s8eNe7e7e/UUBIOcwMdmMFLy+eZiTaF/eDY+YWnqEhoOP6z?= =?us-ascii?Q?3I1BS0w9JR1DIjvclJIJM8GrnGzrYRL7MEmZK21Ri7HHyiUiZfHMR/54oTsx?= =?us-ascii?Q?aj/diE+a5pGqmFIyQVBKlzQegyAuIBBYb9AceO6vP2hlVmrq8S1HJWEB6bzR?= =?us-ascii?Q?rMwoJ32aM9G0ZTbrZvtpvfQU9TRL9jtUfVJO2RjEOXCFTfIZgfehIZsDnEdu?= =?us-ascii?Q?+1p9o4kVtabcrMZkITZANzIMZDS7cXJaVvDQpHnQWnjtIgG39h+tMp7i2pAm?= =?us-ascii?Q?ueuVomBR3lAkMW5a9hNWcck2x8C5ST0PxO2X6W9PzUIzRQNBK+D0un6A7Szj?= =?us-ascii?Q?+69p+Mx2ogyuo/BuUHdjFiIY4GitnVX0EXxhVTxR1fW+umdLO03DKvF0khuO?= =?us-ascii?Q?+M8JIdANnx3SLryNvYmFXGZO+13V7PnCWk5Sx99TDiURMq9bR3ZI7Yh9hZV/?= =?us-ascii?Q?QIYSwDdoEF6Ea+KJxmNSeD9wpEQWksOOQtyagsODo+sOYGV6UxLarJzQPEUP?= =?us-ascii?Q?pj1H3LMUhGa/PuSo5X7u1AtWXV8FsE4OgqlZBouW9cdFeGcGX5MROil5oUNn?= =?us-ascii?Q?fIJSD3rnOLbb9Wo68CK1JLIRdnGsShIdnp6zrdMf/m/xVjvFLRKorDsgiR8W?= =?us-ascii?Q?9mwpMskqKruNEZnIQ6guFLKmV1OMUcgcNSBqqYya7k9po7I8G31yjsya7zP8?= =?us-ascii?Q?F3lP/40n0MKU5X/9rE4u6PStDgyQwaulepi5/ZO1TTnnCriNaNJujDQ13s6C?= =?us-ascii?Q?TDpQqGCJ4vGgFV+ZJUhbOSRdn7KBGLWalu2vWKHY5C6dRnGoV/IANwSm6k2G?= =?us-ascii?Q?Zah2ruIZvFVrwaSH8bfH3cGy9CF+4PluBlJ2D+VBw8XrJZkCSaifg2QxH2F+?= =?us-ascii?Q?/UD0UB4ENrarv0CZ60NA3iMzMzBDcjf9VUk0AT+0WDCBKEX7QcJDDs/fmHyj?= =?us-ascii?Q?yz0wAqTWeoNeO6V+U7Jdna08Sv8+8UDR0E5hrM/B7WMY7VTcPEG0MPRahZPb?= =?us-ascii?Q?6UvlDr1aWBNDsWVUvHfcxcY5GZz+Y2A3FNkhPQWYvCF8U2gr1WyWE+omBbRR?= =?us-ascii?Q?FBM1iJD9Rdh4LPp3NElcLd04r5+98CfpXsvCzCgPx4sw2dMDN8CdHwcBbeEn?= =?us-ascii?Q?9w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: T4Isx9jAm32s/i8odxM6+dCgjcRisY1ee7oJDw1ayHV6rbk+AD/dmvIdKWm/gB5KynQz+jcoBe3v2PPf68DlLtcxYtwUJFO52EUt1vyFzRYEODcQ9Ike5dCIX1/GanlEs4JRjCDCXHRmpjqTgLBLgsWbzIU3yR2Ct6SCaDfNmAEBPaEpdTRpbOJ004LRfIi0nFH7+42y8w6hbObGaPKISGtcr/wwUChQ38HmXITByY/dl1R2/2ewzs6QVyJtBLT9Dy1rRnv/1jQ5JTW29dL0BEUHPcK50jUVEFQ69HoO8PM/mi8NenmF0d3wJqVxnd1ImxqpgSiyC7shsqlNVC7wiZ5kZwdE/moyEzjuO30FFx/rHzJ7KjvC+4rRf2ZLpLPXbYXMoutAw9eOyrM3NLwDrFMfyfZ3vmlik1tVHXI2O4IinntQ8DDJr3eap8ipDIYVDctbNkr6WLHlC/Vir2WoKdcIM8BKC6KYlNbeUaDXU5GT37E2khGdRCiw3PplZj4XhtC0byQ80D1tYLFabX2HekdpGwlMpIBMRPqaBoGmFb1E3JklTkPNTGFi9KJ9Reb71kT5tPp7p14XYPetXIkJeU9z+4vtohC+djtmVM/5ZFI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0a37d98d-98b6-422e-417e-08dd971724df X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2025 20:53:01.5905 (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: AcWOfTWPuzGBn5ZOc3w7w/vWboh/pqp0H1ZQ+vWuYoUcQXwlUejEFqM/E0fUvyZPAFshXRGUpXcAtp51r60K57r8rAUJcoFq/ZOYJsf7rIU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF4B2F62DBB 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-19_08,2025-05-16_03,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 malwarescore=0 mlxscore=0 adultscore=0 spamscore=0 bulkscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505070000 definitions=main-2505190194 X-Proofpoint-GUID: 8eoPyEtzWSN55N6vUt_N9f3DveQzoCHB X-Authority-Analysis: v=2.4 cv=YPSfyQGx c=1 sm=1 tr=0 ts=682b9a44 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=dt9VzEwgFbYA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=TivQtNKgAV_h2yWK6KcA:9 cc=ntf awl=host:13186 X-Proofpoint-ORIG-GUID: 8eoPyEtzWSN55N6vUt_N9f3DveQzoCHB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNTE5MDE5NCBTYWx0ZWRfX0O/sMi+eeT1E tf9gKqIT+GU2hEXZ3O4voIPQbCdg51SBLFKldh81VJNNF7S7KfWcqIJQEjPpvB7zYEvbXHy1uZ9 nTBmdBnIofE0QyYZbPxsIkFCHBp51cCsmxHIWTnmQetB6QaBC3AeVNsK7Z/3UZ2kV4lzTqGsMhW DTQHNu3m63JbyNJVdxsyqXsPxyQprneXWxXGEk9l3yGDplWTYgp6rVMFix9mmSfr+MWmboWs4Yn CbO8MY+jNOfGrEVOAV++dPj864iz8fnULx5GodxpnnsUZQZ7c9wI3NRGmUdoT4utX8SMRDvPfPC P5A/KP83wt4kzannB3OOZeno/W5fqkGV5H5pOeFLjNNKm2A591EvA/kixl29KprA/xoRJUTo+lH BLBz5/bskrvWopOEYuPxEfNt8KfODkBV5kh4lLEOPdlUWvclMBadJmFhfHZO4Htc2bh1Bo3Y Content-Type: text/plain; charset="utf-8" Use a for-loop rather than a while with the update of the start argument at the end of the while-loop. This is in preparation for a subsequent commit which modifies this function, we therefore separate the refactoring from the actual change cleanly by separating the two. Signed-off-by: Lorenzo Stoakes Acked-by: David Hildenbrand Acked-by: Mike Rapoport (Microsoft) --- mm/madvise.c | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/mm/madvise.c b/mm/madvise.c index 8433ac9b27e0..63cc69daa4c7 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -967,32 +967,33 @@ static long madvise_populate(struct mm_struct *mm, un= signed long start, int locked =3D 1; long pages; =20 - while (start < end) { + for (; start < end; start +=3D pages * PAGE_SIZE) { /* Populate (prefault) page tables readable/writable. */ pages =3D faultin_page_range(mm, start, end, write, &locked); if (!locked) { mmap_read_lock(mm); locked =3D 1; } - if (pages < 0) { - switch (pages) { - case -EINTR: - return -EINTR; - case -EINVAL: /* Incompatible mappings / permissions. */ - return -EINVAL; - case -EHWPOISON: - return -EHWPOISON; - case -EFAULT: /* VM_FAULT_SIGBUS or VM_FAULT_SIGSEGV */ - return -EFAULT; - default: - pr_warn_once("%s: unhandled return value: %ld\n", - __func__, pages); - fallthrough; - case -ENOMEM: /* No VMA or out of memory. */ - return -ENOMEM; - } + + if (pages >=3D 0) + continue; + + switch (pages) { + case -EINTR: + return -EINTR; + case -EINVAL: /* Incompatible mappings / permissions. */ + return -EINVAL; + case -EHWPOISON: + return -EHWPOISON; + case -EFAULT: /* VM_FAULT_SIGBUS or VM_FAULT_SIGSEGV */ + return -EFAULT; + default: + pr_warn_once("%s: unhandled return value: %ld\n", + __func__, pages); + fallthrough; + case -ENOMEM: /* No VMA or out of memory. */ + return -ENOMEM; } - start +=3D pages * PAGE_SIZE; } return 0; } --=20 2.49.0 From nobody Fri Dec 19 14:21:06 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D464E21858D; Mon, 19 May 2025 20:53:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747688019; cv=fail; b=IfWwrJHQXJr0MmGQbbJkd9p1YRwiR+Fgbjv32r/r8hQQHPj4Mv/qTKHA8T1oOGXa8KgiaZOXu0oi4Hx3BHQGkDUb1UU31Gob+st18vLHzbYfZRJUXDzdsVCz9pIqKzMbvg4C8sfThSHMoMDosWTOxEYPpFqQZz73dOJVCiZAyBk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747688019; c=relaxed/simple; bh=0AwaNNTPSEH71EPW/eEj1nIWMBCjuH4MIwtCBzi9V7Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ujbLXw26hWY4HTviCTZqdRSOZnYosWLN4TPVqtsZRxE0RCgmZYglD7Ob2jsMj2nBh3b9/AZQcdachTS5bgKwyahfWj3gzmP//2dDjVuEGbbZKHLIN+Hbfj11TNwFySaWcd2N7oOQEmPLQVmhXcgVDVejnNxO0VACEXJWvLr4gwY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=KrF03xES; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=qRhzwh8y; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="KrF03xES"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="qRhzwh8y" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 54JGMppg024594; Mon, 19 May 2025 20:53:24 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=NdSaB3ODZ5QBBpEMHgjMGksvaxtpvEjC09m5So8/csk=; b= KrF03xES4Bi4h7j8HYGqa+7Ntl8CJ99cSpH6Ejezm3oD1WCgxwW1aOSL21PT6bqM tW0C3kixH7f8FYmxC/I4H+dAH7vC0qE9cczfbB+qYsBv377MKokGBkFkXrEoe4E1 uhm3XaYonFDn4mcTlydbxvoqiOo5zs2z6qceL/OJwF05ccVsDnpoSbHNeQ5aK0jN nREviAlw9hXGt8T1wfViP76NlivMhzxy+HlxXVho6FbtiI1xSAX4K/HxvCNU29yE NZInC9XpgbH9Mf4nNoIiDtIUN2cyqjqnyugrXxXG6FroVzAE0b2QRY2I1N7JfI5s jcXGmqj3OoSJ/C+zbEoW1A== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 46pgvekybw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 19 May 2025 20:53:23 +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 54JItVHE017346; Mon, 19 May 2025 20:53:22 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2042.outbound.protection.outlook.com [104.47.70.42]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 46pgw7e3p7-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 19 May 2025 20:53:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ploJSd+lH6E7+8NbPk7FmkWQVs52hcoVJJxQTIizZEneC5H1/lNREcv5nOLgkP4+JWCl5LWzTk0xBzPX6qim1nDdGQ5Ky1M0pFbxbvgxvwF+qjbRbyO3XnAp+le+DodJid0Y0qpVfV4qgM7ljImp7QtgXx4M4D3L4pLtQ1WP6+yEWpHUqNzKR4XAnMiFWezP7oubmff24k3udTlmgMjJTCL6kgZnJIpV7QaMCseekQwkt/bZtVnGHxPaKaxMMyT4huf4S1slK9mBpHoFdsiXlGnj10vwyoa8PLudwOQbXDvb9iRJUk7BGykdVUUkjbR4FS3pJbMUxlO1tk1aoUuVqA== 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=NdSaB3ODZ5QBBpEMHgjMGksvaxtpvEjC09m5So8/csk=; b=YKGlsWZd+ZldRH5nYI+wLZhQhSQ9e9IANPBB+/leFZA8EWA6eJUuHffOJfdY9HSLk9H9tXxKhmfwmEu/5vAgtGhLqs9JsA5SVLYtEUTOMDYj8Glaq2E6vJQI70cC09/r7193mcEwkH78sidP6bgCEzGSa57fOD+OmU8UnfqB3IYAFtRs3tD4kQ3gV3qGCFVLUciu79KXlzVf8noAJpWQP/ffQOnPZsEXEAZZzugcy93Ps9KHfpSs5aLlC9T60ifHvs3JuDCTCkokmO2azp3bZDFhCPbjDkIjuG7i7hAISqmQ1tsWU11xnKzQzWSRnq7atSBC3wuCZrw7rc6ph7srOw== 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=NdSaB3ODZ5QBBpEMHgjMGksvaxtpvEjC09m5So8/csk=; b=qRhzwh8y9J60r2UG5lIGN3xqq1k3PCEdkPhE3gMIr4jSVcCohFRQMdsNaIdr9cKlnOL96OVT2vwgirzRQtq5r8phxVkgFFOcZTtmZTn9pDRQCQFAgUVOedJ2w7bAbNG/kP+7NqptON1S9lInwvAMZHN2hD0MeSreFnU72JpRB8Y= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by SJ5PPF4B2F62DBB.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::79d) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.30; Mon, 19 May 2025 20:53:05 +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.8746.030; Mon, 19 May 2025 20:53:05 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: "Liam R . Howlett" , David Hildenbrand , Vlastimil Babka , Jann Horn , Arnd Bergmann , Christian Brauner , linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, SeongJae Park , Usama Arif Subject: [RFC PATCH 2/5] mm/madvise: add PMADV_SKIP_ERRORS process_madvise() flag Date: Mon, 19 May 2025 21:52:39 +0100 Message-ID: <516daa1c1ec4b22f45d266d5786375e6d59572d1.1747686021.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO2P265CA0385.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:f::13) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|SJ5PPF4B2F62DBB:EE_ X-MS-Office365-Filtering-Correlation-Id: 04d73a76-0a1a-4467-28bc-08dd971726e4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?6VV4npRl2Sl4Zg2cLDTcHjIgsBD/3kuiEFJJdZRVeL/umpQBa1wONHmi2C6O?= =?us-ascii?Q?hiue3z65IE9mXxdF5p1EkmDVGVq3ApPCBMLNaZbq9w7WTcRvgkvcdygCm1go?= =?us-ascii?Q?nBgu1VnfNA+MMhBo8amyj2Pej1QikweDx6npHV6q0gfxpmi1mymjveahKyPJ?= =?us-ascii?Q?ln/Q+rkYYY0aIXeFgNVAUuuevJfHJWt9JZnxCPYB279WuQazUEJqzow6X2yg?= =?us-ascii?Q?umctuQ3MJv82ZU7864zszd1/NxpMrMKJKztqzJ/FVPoLmJfQixEuoinLBLnQ?= =?us-ascii?Q?kViGb9+8U6e9SNILMIb+KwcBsEoSTBzHPnyJkUNNp5AvnSzwpMHTIYcn0Bk3?= =?us-ascii?Q?AmdCdoWkv8Y9/1BBBcBgscStq0fVA8oe1AvQcWLWP6HVYxtx/lBzsotsG6Zk?= =?us-ascii?Q?eMzFI5d6U4VTFOi4xZXdpwzNDa889ytFLUzRg0ZaNZBOeUuzzb8ADVcckKe8?= =?us-ascii?Q?ZL3elSmRzp7ZzYJPqADeo35B+6AUSqrS1+wZ0f72jglNtsIaK/h+4BRqGhLz?= =?us-ascii?Q?qyh2XIXibEOuci95Bco4THswAYE4Wsnlk8O3QTA5TcTmNXty+rawA1PVb6ms?= =?us-ascii?Q?TuNnP6nbpNHQoEFMX9SHMvSwqJtnk6utPIY+22jTH6oB75LEsJVzS0Gg2fug?= =?us-ascii?Q?kSCFFoxzOgcSsocZ1bWEorlzdjVgaKywxT69UnrsWttzFH5CpL5dQ7o34pFg?= =?us-ascii?Q?p1GRcSqhbLOYhEEjpdN/Aqtuc7bzfDhKj7SWMzMNRLA2JC+CwlaaVb9SB3YP?= =?us-ascii?Q?4YPDKxKC8fjhMdUN9twpg3i6PvHAJjdbSJX6j7JV79NWBaEPTKNrZ3MQQWPa?= =?us-ascii?Q?1WEtrH6oSoevQZETFCxhPjF661Zw2LTS7TlBH5rbTL6cOiqTQAvCv9t6102K?= =?us-ascii?Q?zhK9T18/R/Q+emKDtUFSzUwGfRNHJMj7R6nXZuoCGLi45GKB55ovAMpeeJJo?= =?us-ascii?Q?NoA/8eEwoo0m5BFBJf0Z02pOwjyJKCjMjqho1714ju4JyQJpe5nFm2uN88ro?= =?us-ascii?Q?lOOYQ8KgnpJdSz8f1SOuaGs4tRX0izssQBg5QOinfjLbEInsjMTPJRB8YhPK?= =?us-ascii?Q?Jk7Vt5srj+inIH7WTuEgAlBARwtEX2At1hTW6rCr92RX+G/X5vVKYgJOO8Yh?= =?us-ascii?Q?QB0C0WZxJwShp5pSt7SQ1jXZvlSXse7gYp0L+q1NdpPsh25vuVYpGyHjzEWf?= =?us-ascii?Q?GWLkIDscmZs73/yBYABmUPMruSgfGuNo7M3sL/F6Zkumm7K1bKyDktmsjMzV?= =?us-ascii?Q?rQXY/PInsjvWgFEDozxmz2hSf9X8IsAVbDBG9pXydC9TciJ8Zvxt6ZU9r1N+?= =?us-ascii?Q?PmBdYPC1zhfnaYQgv0QBFtkLNel9Zisp0NlB1AX1Jy2Ej7Cb+drEFBDKjkyR?= =?us-ascii?Q?CecjsmcAQcTNttP4SFAb98ToytxEULZThg9brS1rheMRzbb+xFzfoAlA4gyl?= =?us-ascii?Q?ZnYzay9PLu0=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?k3psXyf5PgVWsEA2K7LY/dtbHg50vH2dOOnfgulNMj0GEyFiIcEAdWwEx0Zs?= =?us-ascii?Q?TMO610vJwoHQKCaNLGTD2v/W46E5KWBofxjC/raCM80JFSTfSO6CL4yjTVM0?= =?us-ascii?Q?v9jtaEm3icfjbHg1YpIbDFOT2f7b3gJJnL5JBGMo3gL7h4vLhwbuRSS4CzZN?= =?us-ascii?Q?Rsa/zVkB1NU0UdN9yTwWTElvtWuU4VWFbSUMvXNmy42ndnWhTG4lKNrY2maK?= =?us-ascii?Q?dd1osG6UyFaiF2vMMffiUQgJlCsvzZ4Z6gU7wj+c7djfcN+/R4lKSr9Qffyy?= =?us-ascii?Q?3szt5wiUOC2PFFdX0emkNBSWddSeZFUPm72lVyvbisocgYKAD7n2f2zX73Bu?= =?us-ascii?Q?bXv0Ms5Sv32P9vgiibm//n4ydnnysbe1tFd5SkVmdkL2VWzWU+4rPtltMtFU?= =?us-ascii?Q?HB98gLPQezzkUIs5ypN+Alb7/cIdZilwP7fsrkN53bW9aJK+HyAC95akh+h4?= =?us-ascii?Q?U2NtbbePrWTMhpEs0LqZ21rzS7bBGbPm/XmpZktWMEaYyFCMHTSWJV1CzmkQ?= =?us-ascii?Q?BLgCGXGq3mtMH4EzRkOJQi1v1hlFZ++3gIWdCsiofjF39h4kJ28DDjaEgc4J?= =?us-ascii?Q?i4On6gqzzeJdIBETxFQZQ9c1iJllgqCsWfnALc2GBSE88/Lub/kOcloOPpYX?= =?us-ascii?Q?V/CiRgivvAoQYqFgjtvFRSLPbr9Yjf4uxKwNjOeL2Bhn1XLhevJamUsaXxaQ?= =?us-ascii?Q?5Dm2rEjs95WPuF9TLV3rQoUCBNFzeYbmI773g9/mZe2JeG7LFACN1ah86y/y?= =?us-ascii?Q?2SWiER/I7IeN4rBnBpbbcbWllmDDvsoUkVNWIziGhDrtMaoCMviz/5uojY1R?= =?us-ascii?Q?VkaMd9xO/CfMeBXs6+XlqDMROqx7kfoUHZLzXJ3k5GeWZTN+hrCXYqlMwsJK?= =?us-ascii?Q?Im/jfh8nFMz/TnpC4TqeoFBbqD/QvMM8zITsJtLZXBNptJoe/yUQnjJGP/QY?= =?us-ascii?Q?+cIcwMQ5NUDDed8HGIpM32RpdGiFuMngeDfOI0MVTShRKGsar+lFoRcTPF3f?= =?us-ascii?Q?yrlwCTogLKOaKw/rWTFJa+f/zr6O3HNBSqIcxzbauFghGXkW/yfMCX3McjcF?= =?us-ascii?Q?dlMsIC8nsnabPSF3W/M4/kSTKhtDH34v+uLpQvDSOzJRXoPb0p28/v5mIxw9?= =?us-ascii?Q?fV9Q+blqAS7W6cGyWVJmI+Os3QpqHFtotIoIM6Zm8FWi1UczAkRx0gF8mcDM?= =?us-ascii?Q?LlFPjHZci9WYHeppreMgoYNAK/gWc/0UdAvuzk7HHyNiLBPU6LeqrvPgF8mF?= =?us-ascii?Q?xQuHOIcav6T2r0aPep/2J1DcmfMlqe81MBtdP07KhC3CCB+OLRhTZE592BLx?= =?us-ascii?Q?8LyUvettgCdFVHYDG5wj0IhjQRQ4yNRwQjFZpnnObWgPfY5kMC3Wf5l3z+GS?= =?us-ascii?Q?/ept2ZOWbBg1s4k5pIWsxKcwuqejLblNud56zDA7rS0/uhew4tSJ2FUOTv3f?= =?us-ascii?Q?1gwJofjAlao4jUlmKmiEsBJFV/J5F7f1Y6GqE0SKdFE08eqKmHYBn01taQJT?= =?us-ascii?Q?/4e1suaCdqo7LK+J+aJBieiT/3N1cF70fYFD58Z1iz79tH51GN90EOCQ8gHM?= =?us-ascii?Q?49LizG8xX7AzsS5ehzhRXCeY2y9QOCq8Ho3Tm6c9DAo//FYJ18QO0x3xfMGn?= =?us-ascii?Q?8w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: AIWl1QUF9T9t+Ham60x4Pw3WieS/ECassehE1WcZw2RvczH9jhPW3darckADeqPQ7FPoxwIsbsO81Scvg5xKMMP0oyYteVw9TW1sHlyFR0LRWhB6dA6KpcnhBuOH+rouo54m9Fp7puCIf2fFg05PJMV+jfXedaM9MlqwToOXAqHhjO4J4r7zgpStdXcuRDgXAgRgpg34cJhM0atdWBhxsK5KgpmsZ1HuMjmyAWAiutd/lfg89xILwoC6HKCq0+HX8b1Ssx020S285ZaZQ5LFsJLFtD8pXU/LG6RWkfbl1zQpsJvgl24G3Y/ZT2TsNi/+HVdWlw4L716JojhFm6D3Jfm5rGpHFoKsTYp0CoA04Nh+r5Qzz6nd0RYQA1u+Ho9ZuMlyRGP+3biAb4i3Vzz7IIPej0hG8gCNrCGX/Bts6B+a43njL4A//6sGMRkOlGyWAvA1O9BSdEZ/+1a1SUXXEPGrkdlTxXdeC8kzGtSZp6Uai+hKbdaFxJ1N7IUZiUvsDuKZxMfz2wFqHk2aqYV8Lq0jO/3+tDY7bKMadqVkyngW99I0GbWY83kXBpxSOOZkit0DCdazlNOE6ksYR77U2sw/2uUimQFGK077g3L+fzk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 04d73a76-0a1a-4467-28bc-08dd971726e4 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2025 20:53:05.0878 (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: rduazF9tlW7xlcUUkfnCw3mxlIa7Ky+jRfY6eYqM40hDkHUBWfN/tHJOeSMPGj7U7lipPlusFw9YotzuC26L0IlZAZ9VSkf9dfOgPWRJvLQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF4B2F62DBB 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-19_08,2025-05-16_03,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 suspectscore=0 spamscore=0 adultscore=0 phishscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505070000 definitions=main-2505190194 X-Proofpoint-GUID: FwC5Nzfz6lUnN663VXdY7_TUmnoDe3Db X-Authority-Analysis: v=2.4 cv=JJk7s9Kb c=1 sm=1 tr=0 ts=682b9a43 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=dt9VzEwgFbYA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=UhmxDJUD3rnAwtH-g70A:9 cc=ntf awl=host:13185 X-Proofpoint-ORIG-GUID: FwC5Nzfz6lUnN663VXdY7_TUmnoDe3Db X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNTE5MDE5MyBTYWx0ZWRfX+tmZqkKa/rRy Y+dN+jAbVgH2xLj6B3qI9SaEIWHs5VjpfhKWLKlX/8P3W+wm3eHUlJBMChGZmtNcTXxZjScraWe L7AhSmC/TtSa31KMkW4zYQ8eYgPYorJ/5jUPzRsh8OfkQ+hSl9/tcjWw7HdmRkoIoznfvOV9IWb QPnxqJKW1SMt8r4li84L9++SGtCuDFL75kglwAgi6QdtQ6wO8vjHCN9shhF//p//Fk7/ysBUzXj DdLcClNSZQ9inGzaEdiUOCx/AgkfqviyFN0HqZUDl6431zsVA23Z8qhzaAOVgY4v5eRtjC8jVIN GGt/B9EMgPrv0U225jiiksbxT54rE8tqxCLDDIJZOKveX0jRCcP/eigKOOuztasnLT2L6LaShRg D3mnOW8ugZKwnAuYYB2KC8FyQcOUrwOLlFqhA3964smeCKVPIacAVRTUhBCIV0SwExLr9ZrZ Content-Type: text/plain; charset="utf-8" Currently process_madvise() has an unused flags field. Make use of it to modify madvise behaviour, starting with a flag to enable the ignoring of errors in the process of applying advice across ranges. Currently, should an error occur in a VMA (keeping in mind each individual range specified to process_madvise() may span multiple VMAs), we abort the operation. In the case of madvise() we report the error should one occur, or -ENOMEM should no error occur but a gap (unmapped memory) is contained in the specified range. In the case of process_madvise() we only report an error if absolutely none of the specified ranges succeeded. This patch introduces a new process_madvise() flag - PMADV_SKIP_ERRORS - which changes this behaviour - if an operation fails, whether part of an individual range or one of the ranges specified in the input vector, we simply carry on and do a 'best effort' pass over the input VMAs. Since process_madvise() cannot report errors should any operation succeed, we cannot sensibly return an error code in this case without it being unclear as to whether the whole operation failed, or if an individual one failed (or perhaps an individual VMA within the range). To provide sensible feedback, we instead report the number of iovec entries specified by the user which had no skipping occur whether internally (at least one VMA specified in the individual range) or as a while. We also intentionally do not consider the (rather odd) case of an error arising should a specified range contain unmapped memory - any unmapped regions encountered will not change the reported number of ranges successfully advised. Signed-off-by: Lorenzo Stoakes --- include/uapi/asm-generic/mman-common.h | 3 + mm/madvise.c | 92 +++++++++++++++++++++----- 2 files changed, 79 insertions(+), 16 deletions(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-gene= ric/mman-common.h index ef1c27fa3c57..a5e4e2f3e82d 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -91,4 +91,7 @@ #define PKEY_ACCESS_MASK (PKEY_DISABLE_ACCESS |\ PKEY_DISABLE_WRITE) =20 +/* process_madvise() flags */ +#define PMADV_SKIP_ERRORS (1U << 0) /* Skip VMAs on errors, but carry on. = */ + #endif /* __ASM_GENERIC_MMAN_COMMON_H */ diff --git a/mm/madvise.c b/mm/madvise.c index 63cc69daa4c7..37ef1d6f4190 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -51,6 +51,8 @@ struct madvise_walk_private { struct madvise_behavior { int behavior; struct mmu_gather *tlb; + int flags; + bool saw_error; }; =20 /* @@ -961,8 +963,10 @@ static long madvise_dontneed_free(struct vm_area_struc= t *vma, } =20 static long madvise_populate(struct mm_struct *mm, unsigned long start, - unsigned long end, int behavior) + unsigned long end, struct madvise_behavior *madv_behavior) { + int behavior =3D madv_behavior->behavior; + bool can_skip =3D madv_behavior->flags & PMADV_SKIP_ERRORS; const bool write =3D behavior =3D=3D MADV_POPULATE_WRITE; int locked =3D 1; long pages; @@ -978,6 +982,13 @@ static long madvise_populate(struct mm_struct *mm, uns= igned long start, if (pages >=3D 0) continue; =20 + if (can_skip) { + /* Simply try the next page. */ + pages =3D 1; + madv_behavior->saw_error =3D true; + continue; + } + switch (pages) { case -EINTR: return -EINTR; @@ -1254,12 +1265,11 @@ static long madvise_guard_remove(struct vm_area_str= uct *vma, * will handle splitting a vm area into separate areas, each area with its= own * behavior. */ -static int madvise_vma_behavior(struct vm_area_struct *vma, +static int __madvise_vma_behavior(struct vm_area_struct *vma, struct vm_area_struct **prev, unsigned long start, unsigned long end, - void *behavior_arg) + struct madvise_behavior *arg) { - struct madvise_behavior *arg =3D behavior_arg; int behavior =3D arg->behavior; int error; struct anon_vma_name *anon_name; @@ -1354,19 +1364,38 @@ static int madvise_vma_behavior(struct vm_area_stru= ct *vma, return error; } =20 +static int madvise_vma_behavior(struct vm_area_struct *vma, + struct vm_area_struct **prev, + unsigned long start, unsigned long end, + void *behavior_arg) +{ + struct madvise_behavior *madv_behavior =3D behavior_arg; + int ret =3D __madvise_vma_behavior(vma, prev, start, end, madv_behavior); + bool can_skip =3D madv_behavior->flags & PMADV_SKIP_ERRORS; + + /* We must propagate the restart no matter what. */ + if (can_skip && ret && ret !=3D -ERESTARTNOINTR) { + madv_behavior->saw_error =3D true; + return 0; + } + + return ret; +} + #ifdef CONFIG_MEMORY_FAILURE /* * Error injection support for memory error handling. */ -static int madvise_inject_error(int behavior, +static int madvise_inject_error(struct madvise_behavior *madv_behavior, unsigned long start, unsigned long end) { + int behavior =3D madv_behavior->behavior; + bool can_skip =3D madv_behavior->flags & PMADV_SKIP_ERRORS; unsigned long size; =20 if (!capable(CAP_SYS_ADMIN)) return -EPERM; =20 - for (; start < end; start +=3D size) { unsigned long pfn; struct page *page; @@ -1396,8 +1425,12 @@ static int madvise_inject_error(int behavior, ret =3D 0; } =20 - if (ret) - return ret; + if (ret) { + if (can_skip) + madv_behavior->saw_error =3D true; + else + return ret; + } } =20 return 0; @@ -1416,7 +1449,7 @@ static bool is_memory_failure(int behavior) =20 #else =20 -static int madvise_inject_error(int behavior, +static int madvise_inject_error(struct madvise_behavior *madv_behavior, unsigned long start, unsigned long end) { return 0; @@ -1721,13 +1754,14 @@ static int madvise_do_behavior(struct mm_struct *mm, int error; =20 if (is_memory_failure(behavior)) - return madvise_inject_error(behavior, start, start + len_in); + return madvise_inject_error(madv_behavior, start, + start + len_in); start =3D untagged_addr_remote(mm, start); end =3D start + PAGE_ALIGN(len_in); =20 blk_start_plug(&plug); if (is_madvise_populate(behavior)) - error =3D madvise_populate(mm, start, end, behavior); + error =3D madvise_populate(mm, start, end, madv_behavior); else error =3D madvise_walk_vmas(mm, start, end, madv_behavior, madvise_vma_behavior); @@ -1836,7 +1870,7 @@ SYSCALL_DEFINE3(madvise, unsigned long, start, size_t= , len_in, int, behavior) =20 /* Perform an madvise operation over a vector of addresses and lengths. */ static ssize_t vector_madvise(struct mm_struct *mm, struct iov_iter *iter, - int behavior) + int behavior, int flags) { ssize_t ret =3D 0; size_t total_len; @@ -1844,7 +1878,10 @@ static ssize_t vector_madvise(struct mm_struct *mm, = struct iov_iter *iter, struct madvise_behavior madv_behavior =3D { .behavior =3D behavior, .tlb =3D &tlb, + .flags =3D flags, }; + bool can_skip =3D flags & PMADV_SKIP_ERRORS; + size_t skipped =3D 0; =20 total_len =3D iov_iter_count(iter); =20 @@ -1886,18 +1923,41 @@ static ssize_t vector_madvise(struct mm_struct *mm,= struct iov_iter *iter, madvise_init_tlb(&madv_behavior, mm); continue; } - if (ret < 0) + if (ret < 0 && !can_skip) break; + + /* All skip cases will return 0. */ + if (can_skip && madv_behavior.saw_error) { + skipped++; + madv_behavior.saw_error =3D false; + } + iov_iter_advance(iter, iter_iov_len(iter)); } madvise_finish_tlb(&madv_behavior); madvise_unlock(mm, behavior); =20 - ret =3D (total_len - iov_iter_count(iter)) ? : ret; + /* + * Since we ignore errors in this case, simply report the number of + * entries in the iovec which were totally successful. + */ + if (can_skip) + return total_len - skipped; =20 + ret =3D (total_len - iov_iter_count(iter)) ? : ret; return ret; } =20 +static bool check_process_madvise_flags(unsigned int flags) +{ + unsigned int mask =3D PMADV_SKIP_ERRORS; + + if (flags & ~mask) + return false; + + return true; +} + SYSCALL_DEFINE5(process_madvise, int, pidfd, const struct iovec __user *, = vec, size_t, vlen, int, behavior, unsigned int, flags) { @@ -1909,7 +1969,7 @@ SYSCALL_DEFINE5(process_madvise, int, pidfd, const st= ruct iovec __user *, vec, struct mm_struct *mm; unsigned int f_flags; =20 - if (flags !=3D 0) { + if (!check_process_madvise_flags(flags)) { ret =3D -EINVAL; goto out; } @@ -1950,7 +2010,7 @@ SYSCALL_DEFINE5(process_madvise, int, pidfd, const st= ruct iovec __user *, vec, goto release_mm; } =20 - ret =3D vector_madvise(mm, &iter, behavior); + ret =3D vector_madvise(mm, &iter, behavior, flags); =20 release_mm: mmput(mm); --=20 2.49.0 From nobody Fri Dec 19 14:21:06 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CE0F73B280; Mon, 19 May 2025 20:53:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747688019; cv=fail; b=rQcSMzA53VXesr/r/it74aX34m0GsEPxAdAsS8IoKFFt4bPPQONk5pmVaBa0uFcUSSMMSTUDeg5tM2mppTGCyHdhf0ff9Iv/ZM4xfuNEf2PTbwEWI2UX0rm59gTF3eC7Ol0qwMB/wdviyUPLmSLqBtFG97XXbs823I88gPw1+V0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747688019; c=relaxed/simple; bh=OlkNKLpKgcZ+2RLxPZp+rN0B5p/Ug3wk2WM1owih5gk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=nQSAsuHCCWz+lFvdO3fu9XEkE9itwG09/VIDSrMpgILWXIpAcjjhDk0Qp+jV2NLd7FrqTsbZhKdt8WD1UBSdiTMCRtL9orciazV4JirvhcOW9p+YL11P+yvsEtDO9ptrX6MXYG+i0xD5+pt6hLj0o3t4juMlMrafej70Nt+g894= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=cS27qQAq; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=S4hyEF8Y; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="cS27qQAq"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="S4hyEF8Y" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 54JGMpRk024602; Mon, 19 May 2025 20:53:24 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=7GdzSSDrcxh4fgUeben9xxZYo5qZtGr1+CrX2qNfjdo=; b= cS27qQAqSbMfytXPGlYlOvizDBGcP1KI3rn+1VkmjZq/9IA/zwx1qYsn1k8dWAoA 1mUkXrt88do/5y2x/3ICdoy4vgdQ9drilW6f5g/kOxp0YrFLoFPFCO75Ftfgju6R JOe2RpVJnbuQ7ZdrKFprCf3OBkOMYqo6UawcxHapQFY4BaQaJYZyYzVfCQ2DVfC6 8E0zrfeAn9T+t3b+cnrJlW88IZ/v6s+6IQ14/+NpuibPlW8PLOqJVLwDMv29Flzx eFSyhiWdVBazqTlc/dR0lbKDMLImjEO9TGRXpgQFBQOs0fGwPX0PBWiuzTPqDoOU afaO7pfV72L5qT1JNBZ+bg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 46pgvekyc0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 19 May 2025 20:53:23 +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 54JItVHF017346; Mon, 19 May 2025 20:53:23 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2042.outbound.protection.outlook.com [104.47.70.42]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 46pgw7e3p7-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 19 May 2025 20:53:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NlFeE7wShmGEADCxTfQvpidVpDERg4OkOQ+DqWyljkGCQEpIjJ6fSnyByhtVaaU0f2SAYK82c6w1Vqqy+f9h6I77sLcjfEi3Tpn6+z9X+dJrJwhfCFMU5/fdcjMFVN4g95tDovVFQt/sYlOC66iSvbya+oexkj6U11uhhliFsQrFqqo7v51clq60Yv3arPCa5in5noNPMz9Yan4OcYMaVRU55+yWKupvE71mEGwPuscNSiPh2K2sEqpVQoTF8KkqLVwTSu/RI+4N69tyeW23+gcQcZD1KW1YZbX/sv7zzUNoSyA8PfoyAQTH+PNZjC6bPa/vgFeXgbidB1DIksP10Q== 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=7GdzSSDrcxh4fgUeben9xxZYo5qZtGr1+CrX2qNfjdo=; b=dWU6vFF+OxM15/D+zNIZIEn2gPxjeoXmLVMYzX3s1pg9V5vpUY+Zl7grVaq3yjrgBsYdgGndNNUuhUKvjjd9ngefsUHssGciOhSomc4KChpDRzHhXHNqLeL0N6TDjTwEormOapCHlWA8yqTmc/7IQKT6cV9qmvnjsOzK3UbCmDAw1rs5X3NAUYOHFte+UfyuwzADI4VF83YxHyydbl/NhvFfmerd1skuqw6FL4kufoBQsQS+VuqwMbl42IzGmUk4dA9rC5kZUnRHv7O4JW1we9poyGpGogJo0UAUFa3AWqOaabsvIDezDmF4q42nM4Iwr0QML3bKc4XrA5Rl9hT1dw== 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=7GdzSSDrcxh4fgUeben9xxZYo5qZtGr1+CrX2qNfjdo=; b=S4hyEF8YXMdLpeMX1hg2WAzYKFmVpVnCuCTk9TgqjgmnLhiOx/hIHe1ZzVD5ANq2u117Cu2w739sLBzIBAvPlCKrf9so5IfcpfQvUxv8TtJJxMcQ0mz3Y5kNBpPtx2r9ugnYaKEGhde5sVVns4Y8mL3P5MJNIf+41/5eTscrPys= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by SJ5PPF4B2F62DBB.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::79d) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.30; Mon, 19 May 2025 20:53:07 +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.8746.030; Mon, 19 May 2025 20:53:07 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: "Liam R . Howlett" , David Hildenbrand , Vlastimil Babka , Jann Horn , Arnd Bergmann , Christian Brauner , linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, SeongJae Park , Usama Arif Subject: [RFC PATCH 3/5] mm/madvise: add PMADV_NO_ERROR_ON_UNMAPPED process_madvise() flag Date: Mon, 19 May 2025 21:52:40 +0100 Message-ID: <0e7d82b8e8f4ac58d51c18fc059ea2ca235df47c.1747686021.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LNXP265CA0007.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:5e::19) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|SJ5PPF4B2F62DBB:EE_ X-MS-Office365-Filtering-Correlation-Id: 81b9f934-99b0-4cae-36d7-08dd9717285c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?fppgpLYjE7njeEuyMFyMhYLbf8r6fHLoh5SLrSLmvU45qJrXtFoDoQaka4Pq?= =?us-ascii?Q?DMKH13nWTHvdn2snjvSnPMf/pAD+ZLPontr7DTtzaIszYwqi1y0uhMKx9nMe?= =?us-ascii?Q?lTyFT6zp8MkEbFqoe+eQDhmKdSWoA89JaFieSl0/n9dpIM91/yOBZSw7BjoR?= =?us-ascii?Q?mV7YW+o5xSQaCq2yQ5gq0Z0qJete97Ij+3PtDMSczsOoGncjNuxttfqcfcms?= =?us-ascii?Q?E0OH9b3xKKK+0Xde6jm7iJBu0S4Mt3txX+JPrVmkt/kSa+NPZemwnu197pDS?= =?us-ascii?Q?fQTMfizeRCwJVn3eQ+V21Pt6L+YIJR3QnENSMfK9xhygs89aHPKvY1YXeM5x?= =?us-ascii?Q?XkQQ3bkh+gsAX68K0AaH0i4j6sZ1ewYXbApdo4xsxu/g7VYDsaSlkA33YBGw?= =?us-ascii?Q?MMyRxHEYuXhH1eZBEpaRxRvNsbjfke7toWywz8mvXtRh86hd7uszD8cmsHKK?= =?us-ascii?Q?6Ag4955JEy+rMJX62XcsJYCcToBHDt1rlAZYfF469nCzDilVn5uWAz8b86Yw?= =?us-ascii?Q?1vxT1Zn7Acfb2Huwbw7FfjPI1jQmlhxQu9b7lOTmYtgRSKogm6EJMjd1asVc?= =?us-ascii?Q?Ajvrs4LKYz4+68cCJa3hSOSdv3cQEf65L224H+HGhWOcNiUFP7de/MDw05TM?= =?us-ascii?Q?Y9zYvmWyC/LkUcEldlT6Iwo2Pr8dFlIrCXR8csHyDO17oa18jQSOx8TdF/tB?= =?us-ascii?Q?VZCQtwdo+X8nQy7oLLgsG6z9iPT/u8RkukyQg/xqWfdiyk39et6sBXL9fZ1/?= =?us-ascii?Q?WScDkLngq3uXtK1KJ/5fqkidRXqjceLEvh/KSwQs2xUDjqWkZsUqqbwQKrpk?= =?us-ascii?Q?dpwAJRealf05ZUSYlOFU93c7uspbfIjH/HGMxZArYCe/qyl2i4v+e8WDWV7E?= =?us-ascii?Q?029owcRbjFcQ6L9q4Uni9C2gGRTR4biKTHcDY5ZWJ5oerWtaRbfJsMFw8obo?= =?us-ascii?Q?x8ZDA8PWLM59um8Y7DTUMLEHVila7fDnuRETIdl5PG+Tj788veMXq4b2rPbc?= =?us-ascii?Q?CHK5Cy31zd2XzG4oBVibG5RsDaee5T7aM9e+fssIpWKxMdBtxXNDcZIONnlx?= =?us-ascii?Q?vF9KUI6l7jFHaMenBaEBpvFXOFylMCU5ZSvbH4YEEcbvE8hjz4nSEhK3WvzN?= =?us-ascii?Q?pdwSCuhR3ec6QWKYnxKU4sOTILIQEENSnW3s4HESwNtI1gWDyjj3FEN8Yp0P?= =?us-ascii?Q?8zoOrcZqkoKZzj0HmsroYzWhAtIoju0VvjBeJBnko3Fzkfa61JJQQ5pFAWWB?= =?us-ascii?Q?o1sVDVOg7tzoIeqMdp6vRA5pYJMEFPk1OmdK/srePvPwLetyKaAk0apdhB/Z?= =?us-ascii?Q?Ql+WLgqnG32jXxdWVuOEFuZuz95/XbodovVwyR/5Enw1PYCUoaVCz9iY+y/P?= =?us-ascii?Q?OhpfZzNZspdoc6XoMt2Bei85jtrmuiOHT1NSEqmHdQzT1Yp4THoEAoL3EhAH?= =?us-ascii?Q?875ntPYZIok=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9846rPz5WKhKKja0je7P5hJ7+lWGHxpSioUNVKbO/Gq5tEf8zsJoN2OUte/E?= =?us-ascii?Q?Oj5igQJS8fUTW4AxxB0VXtstS+fBWEpSFVicm7IJx/rR9lbHQb7746AWXBXV?= =?us-ascii?Q?kxL1SO1ivdPLnyI2hkmeQaKuHmWaK6JnLryeMC0jrzschagj9/1+I8vS7fji?= =?us-ascii?Q?9xCwz5jAGJ+o+sbA/I06phjJOv4xOYp2TS+Ht7QD8sHPD2CHcZt5E+Htu91A?= =?us-ascii?Q?grTsdp+U8zSsbXn57bGsFqAGeyfdayB4s8h/WDyAADj75Mrg0natJqwsmhwC?= =?us-ascii?Q?Ia11rNg+quTrsXJYCdoEF77fR7Eubj4j2AJsSBy3yZyMMwJ6MRMDbTd8O+U2?= =?us-ascii?Q?BIMI8KQYOzQccrU7dM3lFSq+AS/fp3mH0PzxuA1r3t1rGvSPy0Jg5PZBMh1h?= =?us-ascii?Q?oOHqmLSJ1tQzpdX91adX4d3XjSqfMsKMj9ACk9AV1ERul2xHfqwXRvsrsvK9?= =?us-ascii?Q?gVs0/rmmGYeiI52vyTKigS6Ll+vFMBB1nwvW27okZLMJZJWAsyQ0bOYhsEQw?= =?us-ascii?Q?l13k21Q4Hs97y54vBPV77olAsv4VgXUWp2Pjk5fmTi9q7xtL2/utrodCmiH2?= =?us-ascii?Q?HddmNjyLdn0ZW4KD2QvYTGtcOTDdC9SBXDJlGEM5SluChPNyxmd0b8dgslyJ?= =?us-ascii?Q?jYuNe7ANas+3KXER4Jn4CUKsPX7VF00dKoddk+y3UzUwpj/ABffGX+JD0VPt?= =?us-ascii?Q?hFnT5IF/UA0XBnYvUNp5nOQU9zSI0X6lYY559kt4SisvHa41vtFnyYGWoJUB?= =?us-ascii?Q?v+Rqq39LRhGFMjF9mXsieiuQGnEWRWgLkz1i/oOfR0P35uQ0P4W4JZDufrX8?= =?us-ascii?Q?96LRHvkEIdMraKKSGdSPY29q2zFL26UYYhygF3FhKSJZaXnjDUx1hzmhNjJC?= =?us-ascii?Q?howGGvH9K1iig6ySshQ22n8m5PnDW+FnVdsyws5tP3mQidRez/1PAmm9zgNb?= =?us-ascii?Q?LlTq8hwkLC3fdJRy7kM+JSKc93Fa+CKj8TWWjbdqyuCOHqGAa1imP4vR2kXN?= =?us-ascii?Q?3fXw8IZ1ShFOEmZ9tXgjobWRH7P2diMrn10MisGWx9Xy8KBMRm1rwq4Guw7w?= =?us-ascii?Q?1SbzKsxfqbAssvF2U/4uGXi2Q85CJ6qHBPNRhv5aRbX0Yq/IW9rHsi50p3Gm?= =?us-ascii?Q?AofZ6rz2vkB178hHRGDEwZUUkMAAR588mbbpYp5yRc094gHCuD3c1cxfRndz?= =?us-ascii?Q?Uzihgfnm6+ZoHJ4nQcVRS97RqGq+9B+8LoP+9l1eJdd4vg3kGLHYDJnV/jnF?= =?us-ascii?Q?jsBdHD80aCSAl64rtuLPwb2ci/bwS9RTMlrYNPLDp7zRLENcF2PrGjfJvyTu?= =?us-ascii?Q?WJ5Uf2xuc9+AEg38YH4txE9bT4Qdz2MunpTHOS6pxjgSLAUSz1O7UQZrTDn4?= =?us-ascii?Q?pnbZVMyH3Cu5pbwF4/7kURtXy53TqskjdeogxB5NqIJLGXPFXh0faA3a6vHH?= =?us-ascii?Q?B9PnY490YXW7XK0Y8hvEZ4Jt1ow/6B/fmMOyS2BeThI0QKEOvXQkx1tgt4mL?= =?us-ascii?Q?zMysP5vXtL7kU7lo5lFfZ8ELfk7Ic/x3ZSA9PiiBNNjqq/RpcOMkaEdTovbK?= =?us-ascii?Q?yIg21SH55cOrmszgcFw+a2+fxpR6XAJ6Q2YNWPfA/wyr7u1NxsK8lIW3nYZg?= =?us-ascii?Q?Kw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: NOSx2J1n8ncFd3+NJxur/cL1ezfvJMs7d/WyY/NmLK9akXWmToAnxxAs7JHo4LHAJYN8n1AJx0iqHs4rOqQyXvbnooMZlW45H3k/GxqavkAJmx+lal8BNAhwlEoPImKF6iKh8/6g5xGsAUS3D2Vn1W7kJbG/Sj30SLiSISEeYAoHawFvrvFs4EJtK6oS4yrZSmZ5yT8r/0bq7eP1OlUdJqUGz+hAc3PzQGVmogpjxzW3yBwkrDbmwzxBiFqyji8gUbfPLajUZOeoQWviHsGNzSx7V5e+R5h6qshj3KAGIKFtxTweCnF+YrG9PZvkx6yrVcrgqPkTpcMiy/INCQoGCx2euM2nghr1aC52g7bh2tkzx7ltD8f++UWJzj+RGCzzOCtBnEJrjVIHV0RiPU0vsTon6oPLvc39+iMY8kOTAJNSrDtUEe5+LG4Lgu926Sz4Tn54DTP+h52k/JO2SugL7YmRG7daqym+J2d39ZRK1VVDiQe7+899haXpZbRJiNJO33OeclWfbQN/J1vuQb3bqi1w6PN4r0clCf0xIRjnBn/fZ8zjqaUnBTxv/gOKrW3zu7oW2z4RwUnAyqdT/KVBgQ6Y4gQmYjJx4wJp0FnsFvI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 81b9f934-99b0-4cae-36d7-08dd9717285c X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2025 20:53:07.4377 (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: g1HsTYi7xuVZB3ORF/6gWWUdKZMiHoT1/hovyXLsJxYNelfH+/9qKaUhLe528F4CHEyw7zzVQ+kI7pVE0vJy9gkgHlAMr8MsO5ISjJalc5o= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF4B2F62DBB 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-19_08,2025-05-16_03,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 suspectscore=0 spamscore=0 adultscore=0 phishscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505070000 definitions=main-2505190194 X-Proofpoint-GUID: pBj46_rACR0qyCfJZK0lnQTAMourP_p6 X-Authority-Analysis: v=2.4 cv=JJk7s9Kb c=1 sm=1 tr=0 ts=682b9a43 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=dt9VzEwgFbYA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=PLySa3yzCaLjkI0FfEAA:9 cc=ntf awl=host:13185 X-Proofpoint-ORIG-GUID: pBj46_rACR0qyCfJZK0lnQTAMourP_p6 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNTE5MDE5MyBTYWx0ZWRfX9wJJX7epEkY+ amNnVbF0WkKd4bSgZdPUyOrb80A/wAnf4Y/xr/RWicXuJH1JNFcVBIVgAcCFHuHm9lRp6DjHhRP 55+GQq9fH+NXjR7C/txZQq2qNOH82VGkql57M5aG9YRd6aITQ+wOdSDnp8Zh4OP3UNBubFpN41D x3KAFRdFDX/377+vyfylksB1ME5Dk1rPRdCmSFqwBJe/Q3LgPU9yaQ3cHWOFBknZSR6l7ClrxFk lgPFoS6ManoL4dAcWqSeoJrmx23RqLb+T1WHFkC0zOQMxthgu0oZqcyoTbr2jlQclZ/ockpWX83 iGoaRD++hPL4N/dweDinRHHSePDChLJ4yavpuX5nZOMdBcRP3XLjY/YC/q/dvXyOWOUN3ucOFEC AD6WLJTGkb6irTzGzMejTH70mIlQmjbP4QRa9FU5sZFXp5/G2vq/fUg1dGo35Yx1wiV+20Y9 Content-Type: text/plain; charset="utf-8" madvise() has the peculiar behaviour of, should unmapped memory be encountered in a specified range, carrying on regardless, but returning an -ENOMEM error at the end of the operation. This is problematic as one cannot tell if this error arose from there being unmapped memory or some other cause. It's also rather odd behaviour. However, we must maintain madvise() behaviour as-is for uAPI reasons. When it comes to process_madvise(), things are a little different (and a little more strange). Should ANY entry in the supplied iovec encounter no errors whatsoever, then all errors encountered are swallowed and we instead report the number of iovec ranges which succeeded. However, if no entries succeeded, we simply report the error. This is problematic in the case of gaps - as the -ENOMEM return value is treated like an error and causes the entire operation to halt. A user may very well not desire this behaviour, so we provide the PMADV_NO_ERROR_ON_UNMAPPED option to cause this to not be treated as an error at all. Note that due to the way it is implemented, PMADV_SKIP_ERRORS implies PMADV_NO_ERROR_ON_UNMAPPED. Signed-off-by: Lorenzo Stoakes --- include/uapi/asm-generic/mman-common.h | 3 ++- mm/madvise.c | 15 ++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-gene= ric/mman-common.h index a5e4e2f3e82d..58c8a3fadf99 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -92,6 +92,7 @@ PKEY_DISABLE_WRITE) =20 /* process_madvise() flags */ -#define PMADV_SKIP_ERRORS (1U << 0) /* Skip VMAs on errors, but carry on. = */ +#define PMADV_SKIP_ERRORS (1U << 0) /* Skip VMAs on errors, but carry on. = Implies no error on unmapped. */ +#define PMADV_NO_ERROR_ON_UNMAPPED (1U << 1) /* Never report an error on u= nmapped ranges. */ =20 #endif /* __ASM_GENERIC_MMAN_COMMON_H */ diff --git a/mm/madvise.c b/mm/madvise.c index 37ef1d6f4190..fd94ef27f909 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -1530,7 +1530,7 @@ static bool process_madvise_remote_valid(int behavior) */ static int madvise_walk_vmas(struct mm_struct *mm, unsigned long start, - unsigned long end, void *arg, + unsigned long end, bool err_on_unmapped, void *arg, int (*visit)(struct vm_area_struct *vma, struct vm_area_struct **prev, unsigned long start, unsigned long end, void *arg)) @@ -1584,7 +1584,7 @@ int madvise_walk_vmas(struct mm_struct *mm, unsigned = long start, vma =3D find_vma(mm, start); } =20 - return unmapped_error; + return err_on_unmapped ? unmapped_error : 0; } =20 #ifdef CONFIG_ANON_VMA_NAME @@ -1632,8 +1632,8 @@ int madvise_set_anon_name(struct mm_struct *mm, unsig= ned long start, if (end =3D=3D start) return 0; =20 - return madvise_walk_vmas(mm, start, end, anon_name, - madvise_vma_anon_name); + return madvise_walk_vmas(mm, start, end, /* err_on_unmapped=3D */true, + anon_name, madvise_vma_anon_name); } #endif /* CONFIG_ANON_VMA_NAME */ =20 @@ -1752,6 +1752,7 @@ static int madvise_do_behavior(struct mm_struct *mm, struct blk_plug plug; unsigned long end; int error; + bool err_on_unmapped =3D !(madv_behavior->flags & PMADV_NO_ERROR_ON_UNMAP= PED); =20 if (is_memory_failure(behavior)) return madvise_inject_error(madv_behavior, start, @@ -1763,8 +1764,8 @@ static int madvise_do_behavior(struct mm_struct *mm, if (is_madvise_populate(behavior)) error =3D madvise_populate(mm, start, end, madv_behavior); else - error =3D madvise_walk_vmas(mm, start, end, madv_behavior, - madvise_vma_behavior); + error =3D madvise_walk_vmas(mm, start, end, err_on_unmapped, + madv_behavior, madvise_vma_behavior); blk_finish_plug(&plug); return error; } @@ -1950,7 +1951,7 @@ static ssize_t vector_madvise(struct mm_struct *mm, s= truct iov_iter *iter, =20 static bool check_process_madvise_flags(unsigned int flags) { - unsigned int mask =3D PMADV_SKIP_ERRORS; + unsigned int mask =3D PMADV_SKIP_ERRORS | PMADV_NO_ERROR_ON_UNMAPPED; =20 if (flags & ~mask) return false; --=20 2.49.0 From nobody Fri Dec 19 14:21:06 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C5B2E215F5C; Mon, 19 May 2025 20:53:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747688019; cv=fail; b=THwBckSFS7C/e2LohBmQoc6Ml+rFPHnuWSOr2WWIuVW8zI2qdC0cC/YspVaoM7Xhd2lnVRkNS9aef6nsBrYHBEUE/OP1MPlfureYmmeHLraWK75RdJ41cIKimllTvnODD3uPZ7Me81C81vVphG7Acjcy5zsnnq2JIa/piu101GY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747688019; c=relaxed/simple; bh=+nEDNAARqnCUBEgZVKsdz+8OyGS+PT+M1Pgzzq8W0w4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=WVP8IP76IctAN9eiirqPlaqoJQ/DnZt92LERAyY/nmZJsE0Q5JTmoA96fzBsz5EO630fjODbppJnePHbkIZdbi0jB+eyN2pg9F/uzhmG6UewzPukfvxhuYpD+EtbZbleyYowqUh4RchsomhHLuigBDgvGP8faKnJSKhsizrFmxw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=Iih02Xd5; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=ZqcvKYpq; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="Iih02Xd5"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="ZqcvKYpq" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 54JGMov6026200; Mon, 19 May 2025 20:53:24 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=lSMmhNkLVsU6TmwqC2fCXnxw0dv6uUxxrMIrFipq01o=; b= Iih02Xd5fs1MNWfO9stfWsl1g8WZUMgD/+2dcU/gBD7USEC0FpSY2R7JSCYUKC2B Ol05b3Fmsy1QFGXL9EKIHOOM8ljG1vHnhzpdRjzpdn4lZ71wn3ZJESh4P5zDl43p glXYupExhtyf7KJUOh/DGHy5lgkRhCkehnMJUPRv2IuW720OUN/3xEK4jF7+5/L+ rg44EKnq+tEN6LoKT8rXDQi2A3R7DQWP+EiDFA43rwfw2jHz/erLBQbdr/SHmJz+ VjAvCH0fG0P8EwOCN++5Mp0q5ZalsddI6QK0axq8yzLyKGIyF/4wXRg+M/kOGkgK oWGU/8JBv6leKWQCo6jX8g== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 46ph84kyjm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 19 May 2025 20:53:24 +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 54JItVHG017346; Mon, 19 May 2025 20:53:23 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2042.outbound.protection.outlook.com [104.47.70.42]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 46pgw7e3p7-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 19 May 2025 20:53:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AkZXUdufa6BpelKL8es/GdbyhuWhrac7t8jb4kbGutIQ84r6+KrGLU2AzeYFN0anhhyRcOfZqByGgNyX1aZC2QitI5nL0x9GfPdB51ayLoAH5stjVpRh5Es36tF/UZSIqbgn1zQGFoJ1zwLvcNhsVUAc6/Iv5vJmgXgAfIjGC+8BbLGAZWhBQ3wMN2dQEErMt1tP3lrbCsAkCVlHJJNUR2sc+rf0VteGRGOndgGVqF4CdO9+CE+hEQtQ9IwTX1IO0Go8mXwuMi8H1P5RRp1vvbd4YqM2OL3okYcMbpBaSCzfa3XR2cKjmrZxENEKAEQBnw2VcMSfCEKtCLG3vIr30A== 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=lSMmhNkLVsU6TmwqC2fCXnxw0dv6uUxxrMIrFipq01o=; b=pYVn85EMdhJiHhm45VK1cIcGy3fzrYlDP0ZMXGkC5fbOXVYyPhe7YqdoU1xzX11279MikcUyeDJnca+5Gg4Vhgnd5IZL+IKs+tC4mrlOAG2AV2F4/jsfaSz0xrZ2xGEar3cPxkgNJm0UbFke+xW6pX7TB1RZMu2Eulmc+G8IoQWcuwGAvFRuD09+fVXHFRQORjc0L3nHplX7WuXBKaQMSMYLA2CQWza5RC2r1eQY8HXAp+2gfggpkmr6QyKAWqvk+MTVhTRI9IDTyhyh2Uou96uCkFhWL5gu9JFGsGn6b8G/6CejjAOuz8tvLFVldl5AVHXK558CP8FLeFy5wKC4JQ== 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=lSMmhNkLVsU6TmwqC2fCXnxw0dv6uUxxrMIrFipq01o=; b=ZqcvKYpq4ynQztvuxwGThf3PKMCh5IPEOHVxI2a7YntHKieIlWnHxf/3dR76RAQ5PwvgPS/QgvBPFskyBtG0K7WLDzNQDyEtxUSP9TZn4X+2yAm7C1f+HWIiysdrj21VvfPrrSN9kzhu8onfffGypSXZZpNSq2H8IK8EHxUXdsE= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by SJ5PPF4B2F62DBB.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::79d) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.30; Mon, 19 May 2025 20:53:09 +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.8746.030; Mon, 19 May 2025 20:53:09 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: "Liam R . Howlett" , David Hildenbrand , Vlastimil Babka , Jann Horn , Arnd Bergmann , Christian Brauner , linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, SeongJae Park , Usama Arif Subject: [RFC PATCH 4/5] mm/madvise: add PMADV_SET_FORK_EXEC_DEFAULT process_madvise() flag Date: Mon, 19 May 2025 21:52:41 +0100 Message-ID: <617413860ff194dfb1afedb175b2d84a457e449d.1747686021.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P123CA0464.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1aa::19) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|SJ5PPF4B2F62DBB:EE_ X-MS-Office365-Filtering-Correlation-Id: 9d539bd1-4615-4c14-e6dc-08dd971729af X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?5YaSqfAn7z8Xwk4DIEC25QlxJqFet+9zMD6b9h1/6DtJPQES4BrVmAP9Qhdd?= =?us-ascii?Q?rzwt3UKk/MlC0tUQ2N8OxTgTVVwmUVvAmpqqjWLLTJpqyQjDSobOXPsbk04g?= =?us-ascii?Q?pU+J0HvVOvaYrfCqyB5crqVltCkCHg+tvQZRxTR7s1s/UJVOXzoZ4aCgFfhE?= =?us-ascii?Q?KynC1EQwNxyhfLOLbfZv0cqqjVRHvRvokSdLeYry+kv0PQCbPSBkho+wxToU?= =?us-ascii?Q?0PAFu9C91KH8Eo/YMyBoBiFLTDEqI+lqW3pjWDceahJRb0LrTFEwtBs/AcFm?= =?us-ascii?Q?jdQAREX2jEL1MBdn7czH7Hyr8GtFBTI1H/X71z7eue2mVONAuyCpt1k+9k+a?= =?us-ascii?Q?rd/+YRQNt4/qpetY/F9EmUsl4m3KY/IkFWezandz6760bw8syrtZrjGFEtYW?= =?us-ascii?Q?JPNemM2VCGAkNobKs1tVsmPqAkjBr1LFHqJau1mDAw07fzJ8kspl2VAsTOkg?= =?us-ascii?Q?9NzKTuIVIq1AvfPAHhchNX9AnEDE6UpUzHxw3nvSynJztMdiRSxW17UqnZtP?= =?us-ascii?Q?PhF4fJl4rG4/suhk16pK7rAsLTxuNJpf+SMEkPYvY9gTqnPHJzGTPSzA5Wj2?= =?us-ascii?Q?Cxuu7yw2+wWAfumf2DpwK9sXstAm2vI3FlMU1yuG8FgmPnU3mZ9OkJuI+2Wh?= =?us-ascii?Q?rbK5FqeJy7YjbwmrDz/8dVCuxnxgxvYDMWcnhFjMEbbmJVheSQlfE2zqBymR?= =?us-ascii?Q?aVN/5b5QE78DU2vpyKB+y9UasHV7RTa4T7mfI8LEAm/RQwW4pAngXqLtI36W?= =?us-ascii?Q?6SBOD0PXgO2ciLoySfb3aDfuNatmglKPPww8Pf44efuzdyZK1R+Bdad3riov?= =?us-ascii?Q?LwA4y0jFPGQkjN/CyK3eF2B4oSbGaJlaNuEX8yVZUORPwE097CthzclEWUHH?= =?us-ascii?Q?ysuGZkRTvajuXkIYbpI62ZjUATcXwnOyRyfICo2jwbDLIldiaTz03N64SlVh?= =?us-ascii?Q?sw0CbeBFESrGeWWMGuR1tR2Y2gHfYNU2qExOFKRkPqZOlqAFO+g6uOpiAB0o?= =?us-ascii?Q?wDIcPlYJ0ytcV6v9fd/dHqWgWJxtuNshlktXTlff/ofp0nhG1+RnzLpOBgBD?= =?us-ascii?Q?GoIPV7nHJoBYSSlnZo5XcvflYUIH8q+VXjrl+jjXtMKme9w6TtUpKR1LqEMK?= =?us-ascii?Q?vXdX2yfPHPoBJPmoP8c1uQjco4DVoju67UGm0FxLJ3/pZryM80TIZkf62XPz?= =?us-ascii?Q?AJThC1PJ0u0FDwc4J8bUILLaLLcL1zlwpWHK/c3UXJScojxBey6QizF7EIoC?= =?us-ascii?Q?aejl4G3QTgNxNx1MMnlKnwyVgi+DPPassaU+pMfCpX9mtX0d1aHPE6Litis8?= =?us-ascii?Q?KHbRp/WC7fX7FI3LI2UCYyq9XlJFe/NqGpURQJ6s7ebpJwMBdsOGhKc1Itxm?= =?us-ascii?Q?1zCONIn8M+2j/s/Hf+sUMpOTKCCXJbeUHURFYtLOJzXtc0lqAjdqXwHcYiMZ?= =?us-ascii?Q?BL6FBXi+A+g=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?vGUfEMwWVhmqJ9HzoKGO84xdaAG75IjBoP9tc4nJEoFlE+yozBhPNqIqKtvr?= =?us-ascii?Q?6QK1T7yW2kGAL/TCstkTciemLSVAPlflPB0aIEKBNqKnhMwOMQ5QyCWjCKA9?= =?us-ascii?Q?VxYR7h1C/BH1WtBMM8JWJSn8u3LMsEm/nOM/9l2Zhfq776jO+OvCU7fOJcPO?= =?us-ascii?Q?2iLYTPZMHKz/Si9MJG8AJ3lIzBR8PEJ+Fr9YDmJlNpJPsW4Kl03GD+o4KmOL?= =?us-ascii?Q?Wku9sQqrDaFWLbSacgnd3/u3jySYP3P7J9AL0zBBP+RTYBQGepgCiWB80EMx?= =?us-ascii?Q?vbhEDxlMiwHLSnID7qU06pYQF1dFH4k5CLWrUELSoqCzqdrGHl/rTUjUCzMv?= =?us-ascii?Q?xFhJ+otB+8/h38U0iJHF4rCe8O0UGxiyXNzyP4nJ/KnHdNuY020G8Oet5gpx?= =?us-ascii?Q?RQq1ELzJy7tUo9Ol58ddf4orMksIcimMg+Nlf0KW/LO/62CGAihAMGh89frR?= =?us-ascii?Q?1Ii9P9Wcx16FDTgN/yuts4hVhH7Fa1Ko459zUz1u46IjEAEMB270QBJoN29l?= =?us-ascii?Q?GGm2xnppX6RH0Nd2Gi6Ypfl0zWRVFRnb+xSROaSHEXo8wqo4jukcPXrzA7Qo?= =?us-ascii?Q?6XIbrpxhuEKU+wmg2RpLvtgTymrxw4hwDrE025mwVpKXy+lH1QJQ2r9+CK1B?= =?us-ascii?Q?BEWmzOyZtljxBjd3hu/AsFJNq7fAIlnw4K+mHsau2IHo4/eO7GIQnfTzTRCN?= =?us-ascii?Q?R6T3aiUfHJV/akEIziuCqvx3endjEq/13qXmYbGPLDlCiKr37ShBnM+4Oc1G?= =?us-ascii?Q?n5PdqPiSpzxifYT+qlqtVvWD5XQTBWSioGtHqQDXpcZM31rvk4J5sGaFqvZZ?= =?us-ascii?Q?+0v0GxRdS4MVgS3y2N0ge6ndUvUp9CbkQQtH2BJfuck1yPjlpYvU62l4avGm?= =?us-ascii?Q?XOEK+b3MNqhtZlt7ckGGDGdn31TsMkW8UKv+9tEPL9nalXZjs8+uq7Uxr8rv?= =?us-ascii?Q?4LC2QWOuOASXahSynEi5jmyXUUEe/2AN5BfXMVXk8kEh0Li9hr2SOi9vNk1J?= =?us-ascii?Q?jUFxPe3Vn7Q2m23+i76EW2mHQw+4EXoMj8OXWWhOx4pw+r1Kw+nDt1NTE+y8?= =?us-ascii?Q?Jofr9AMmKz9ukNCTd2euY7XChkDgNFVt6eFsnVZ+ZyOqkP/nkFqXf3BO87WK?= =?us-ascii?Q?UlzmSGZc53NvidfC8vxVre/nZ4SyprroIk95oeR+dKRFJEeKNvi6com6vFAe?= =?us-ascii?Q?/nh2CHcVk9+IbwFHtW6DfvlkHRhFARM7JC9s4RlOVAU5rBOtTjFtZSyelpw/?= =?us-ascii?Q?y3oPxTcjbJ2YXq6rkovcKIN+SjxhF0WCmAxcyogOQ1JzLIThnT1nSaVl8UVM?= =?us-ascii?Q?ZumV4B552z80YEL05noSara2q+zz4P4uK2aq5B/tLnLB7oV9D0gYwUIbsy75?= =?us-ascii?Q?TuRfv5zQDXMDOuCdguchFeNKLYn+OdaOfmgfX0ssBPjoCOdxt1xOajp2iynK?= =?us-ascii?Q?t40GPAmyFXj+8Ls4kZVbRfQFp44ObTQWBnoQsCadgFx/IgFxgEA3JERINeKg?= =?us-ascii?Q?nSR3NHXHLV8eirNy9JeatnCBSpOtiBcTtn43iilxJZBqO6SwbX3u9Lbu1w3k?= =?us-ascii?Q?MAlUrtHRcc7EADPisy5/MD0taoFWqp0qP1xHtoPg77hpVIv5MkzRjsTAYo5+?= =?us-ascii?Q?kQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: iAN66Fq+VuuZrSrULYHbJrGjcU0qPWfj+2TfilXRncCXGaUo3l9WOMopQtFFufvVu4Au+RPNvUfI48XKaLQOhuicZejdP7EIVjtnLswb/oju/2+DdD+mMNC6XU/tlLlmaKljta2iU2sxw2b5YK4bgUdBGXnalQ50wYd2gQY2vvL1krJnq8ZD1eUzwV7QkElU53RQGVSM1OCpk0OVGimA5sdW9lnEc1wX65uhP1yZG1Ly10xRN/MxW7bP5mImTfXCL71KDfZmHGCpQciDZI2gCJ4E92DuC8OQOHek2+XaucYCJWZbJHEulf71RvhFXLlKkOfo8boGODgaEZqczQvWSVKtfwYAFd91ICL0RmY6B33oCtHWzkLBic65Td6ZfVLhFMpEX/i9JOVW+XvbqeLQZERshBcwaBmk+zJ/UX4SfkbuG6i1Vs1r9b1PUtGhgdiwD8YD3gcrogNOA90KO8TNxiLFXlQrM1FTWavTBcrImuvjL/d0lxs8xgkkm1BlaVRPd3j/h9YZsjD4BxZHRDvwSY8lxpC/Obvz/ru8Vji0niEx/vQq/wlTULRBqu1izZqzxftpuYuvSUCXN+QZXTrTbQSNCsro3b46jlwLSi2i/Eo= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9d539bd1-4615-4c14-e6dc-08dd971729af X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2025 20:53:09.6570 (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: JM7RI78cj88maaRHy++Kpb0m0q+rq+SrDND02Rq2EHoTLWA5JJ79P3Wy7yx0Bq1YqJ5B1iZfMY5GaceUcJFHDdXsj7gxQZhIECNdWDDEUhE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF4B2F62DBB 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-19_08,2025-05-16_03,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 suspectscore=0 spamscore=0 adultscore=0 phishscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505070000 definitions=main-2505190194 X-Proofpoint-GUID: Z1_PQYA8-ZASV69C8Dd1eXlqvg1gb-O1 X-Authority-Analysis: v=2.4 cv=YPSfyQGx c=1 sm=1 tr=0 ts=682b9a44 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=dt9VzEwgFbYA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=fbqJCjwplNoI79WyuVMA:9 cc=ntf awl=host:13185 X-Proofpoint-ORIG-GUID: Z1_PQYA8-ZASV69C8Dd1eXlqvg1gb-O1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNTE5MDE5NCBTYWx0ZWRfX54y+m7QeQV9A 16I80raqMquT1sQhYkjxSoXgLa+oUenW6sYNXL6ZbMLMTL2DxsrFqls79aF1lht7wBsSm/upVpf 6bEM4fSiXdhJhkoRrnCmEmfArnghIrX6I6NDdPC+Fh2H8m8ImsFjRjZjDXOD8y2sStZ6uQM8yJZ /ZcrOJf7xSTVMVMbH2qtsYPaJxPk8+XFaDA0NB9vluKS5ZxXgXdapKDJiKvBqLOGBy3kQn7bcs9 ehYJt6Khm57euHffrwc8269J+qDzorrLGHlTEVmsiR9TOz9BTL5Lg75hkNHgzUP7DLJaBr1RBih 1nOZoNg4D17TyhPkZDlLhMYM6QFDgZjNQlIuryyK57UicZOi/xxmixRS1BEg/kxh6mcjbwz6Hk9 +uHns4W9aH2F9M/PwgrK3kAocG7QsJW9ooCs7bI/AtwiOPsdFIGcIWspMylvhfESC8tS4b7N Content-Type: text/plain; charset="utf-8" It's useful in certain cases to be able to default-enable an madvise() flag for all newly mapped VMAs, and for that to survive fork/exec. The natural place to specify something like this is in an madvise() invocation, and thus providing this functionality as a flag to process_madvise() makes sense. We intentionally limit this only to flags that we know should function correctly without issue, and to be conservative about this, so we initially limit ourselves only to MADV_HUGEPAGE, MADV_NOHUGEPAGE, that is - setting the VM_HUGEPAGE, VM_NOHUGEPAGE VMA flags. We implement this functionality by using the mm_struct->def_flags field. Signed-off-by: Lorenzo Stoakes --- include/uapi/asm-generic/mman-common.h | 1 + mm/madvise.c | 43 +++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-gene= ric/mman-common.h index 58c8a3fadf99..6998ea0ecc6d 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -94,5 +94,6 @@ /* process_madvise() flags */ #define PMADV_SKIP_ERRORS (1U << 0) /* Skip VMAs on errors, but carry on. = Implies no error on unmapped. */ #define PMADV_NO_ERROR_ON_UNMAPPED (1U << 1) /* Never report an error on u= nmapped ranges. */ +#define PMADV_SET_FORK_EXEC_DEFAULT (1U << 2) /* Set the behavior as a def= ault that survives fork/exec. */ =20 #endif /* __ASM_GENERIC_MMAN_COMMON_H */ diff --git a/mm/madvise.c b/mm/madvise.c index fd94ef27f909..9ea36800de3c 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -1869,6 +1869,40 @@ SYSCALL_DEFINE3(madvise, unsigned long, start, size_= t, len_in, int, behavior) return do_madvise(current->mm, start, len_in, behavior); } =20 +/* + * Are we permitted to set an madvise() behavior by default across the vir= tual + * address space, surviving fork/exec? + */ +static bool can_set_default_behavior(int behavior) +{ + switch (behavior) { +#ifdef CONFIG_TRANSPARENT_HUGEPAGE + case MADV_HUGEPAGE: + case MADV_NOHUGEPAGE: + return true; +#endif + default: + return false; + } +} + +static void set_default_behavior(struct mm_struct *mm, int behavior) +{ + switch (behavior) { + case MADV_HUGEPAGE: + mm->def_flags &=3D ~VM_NOHUGEPAGE; + mm->def_flags |=3D VM_HUGEPAGE; + break; + case MADV_NOHUGEPAGE: + mm->def_flags &=3D ~VM_HUGEPAGE; + mm->def_flags |=3D VM_NOHUGEPAGE; + break; + default: + WARN_ON(1); + break; + } +} + /* Perform an madvise operation over a vector of addresses and lengths. */ static ssize_t vector_madvise(struct mm_struct *mm, struct iov_iter *iter, int behavior, int flags) @@ -1882,8 +1916,12 @@ static ssize_t vector_madvise(struct mm_struct *mm, = struct iov_iter *iter, .flags =3D flags, }; bool can_skip =3D flags & PMADV_SKIP_ERRORS; + bool set_default =3D flags & PMADV_SET_FORK_EXEC_DEFAULT; size_t skipped =3D 0; =20 + if (set_default && !can_set_default_behavior(behavior)) + return -EINVAL; + total_len =3D iov_iter_count(iter); =20 ret =3D madvise_lock(mm, behavior); @@ -1931,6 +1969,8 @@ static ssize_t vector_madvise(struct mm_struct *mm, s= truct iov_iter *iter, if (can_skip && madv_behavior.saw_error) { skipped++; madv_behavior.saw_error =3D false; + } else if (set_default) { + set_default_behavior(mm, behavior); } =20 iov_iter_advance(iter, iter_iov_len(iter)); @@ -1951,7 +1991,8 @@ static ssize_t vector_madvise(struct mm_struct *mm, s= truct iov_iter *iter, =20 static bool check_process_madvise_flags(unsigned int flags) { - unsigned int mask =3D PMADV_SKIP_ERRORS | PMADV_NO_ERROR_ON_UNMAPPED; + unsigned int mask =3D PMADV_SKIP_ERRORS | PMADV_NO_ERROR_ON_UNMAPPED | + PMADV_SET_FORK_EXEC_DEFAULT; =20 if (flags & ~mask) return false; --=20 2.49.0 From nobody Fri Dec 19 14:21:06 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5D3B021C9E7; Mon, 19 May 2025 20:53:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747688024; cv=fail; b=MGDegQfDvlcpnOvykqf3C94+K7QvsOm8puniYcorjy1AcSjn3ITAkcjC3/g5lj/F2og4tlAlqneC2BsYBrlx7/fhC2uH9A8VLWm2mc0bYbkYgs+6vdCiYktvwrSv4r0tOPfrYImsfin4eUI4cgT6NxO8QGVrjm2Rbp8HeX72qwE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747688024; c=relaxed/simple; bh=YDuoJX2oLUeiubdHjokiglM5GOl3xvQvt3biVT6mG8g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=PCZ8FU7M8shOHEh5XuhsJFBo0aEAQrcs5CvUw1w1VkYgUTY+mrXrELfcZwTp8SvpnKfmtIq9oVdL6pnG1YNEVPcx6QiPQcPsCOmWuHYRUdIqUiZiNjawPNiniEL7e54jFQ5NcmpaBw04CEmqEm+6pajNz/ywc+cHp8/BcYBH+mk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=HZyYEfaP; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=ZtFvMbcI; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="HZyYEfaP"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="ZtFvMbcI" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 54JGMp7M024635; Mon, 19 May 2025 20:53:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=/wuNo8wI0kyIUxjvVWuG54+mJye/M5HbQEt106WDJ6E=; b= HZyYEfaPttlZyKM8yjhKFB+Tn8OfgM8rGwUx1iiVP5rpcjCeSHpD1PCDb9LCpQPj 8CidJzQqVgi2wLWSH5sKEgS27E/Q05dHOiFS6iP5s4BAWsHTMyvk/zXz0rDbartQ SGzVf5WuhXQe4RyNIka64sNuexHdIuXUGtCYB30+hRjl9TsfLljMIAxh4j71lMit UzjKyjGS89aFq8qVuubW6SXBWsF9DqS/PdqG9+IwqL+VZ5cylJN+2LWeUsptmDoU O7NbeglcjAeT7bE9mnUIcHyfAsRPTfVNnEw5r7B6kpeqgMgi45QGGXawqHTQEIF6 2FxU3YnWqDZ/Y/si8oI1KQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 46pgvekyc4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 19 May 2025 20:53:25 +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 54JItVHH017346; Mon, 19 May 2025 20:53:24 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2042.outbound.protection.outlook.com [104.47.70.42]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 46pgw7e3p7-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 19 May 2025 20:53:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nFvcu5gQg/9wxF2/78AIbobNBIwhSx1LXik2k+GFfEZmcKbuRKlYcNnXFLKGkFIA+xhJIbvYTOLb4IywIXGlbT8jYYxOtx5po0d2SylqVTg72OfdFDiyKIzmUQqU7vmnONw2++wXo3wQyqKTVKgvJCeT3uuHV/v+LOAKsvcU6XZPDOjHSr/cI68usF1X9kV+DkvrB/4qcpD9QzHIOMFusfo0OGUbQt9sCdkdewXlwErG+YYQ44Hudz0X1EOD0xIkesPPqOvQ/SIll+vyf5fi2hETKD5XhnU9R3ScRAw3IQbfsw4dwTgZCzkI3MifXsjqEXq3DsHIChYE3tCJHuoKCw== 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=/wuNo8wI0kyIUxjvVWuG54+mJye/M5HbQEt106WDJ6E=; b=ep0F4xx1ni49tS1L/h86MXGvZ6jwi98nIwYfHm+ekqwBAgRfAT+2sL15oxtMtJbyGqA8kNnu+YX32lK0RHo4eeaus2jIz1JDiKFxEHr7hiKtu+gX9s7LbHbK9yCw6pWFDFckbeRxvKlYdhcfAHdOmfX/wJT06UnfoXyQeuNSmXQaSgzyJ88TGECiBLkxPnv7wFegS3bhOk+8SVxxqImnKt7lGALGd+kQctthW1SjxAWhtMyA9h6aNPBuq42Xw8b3RYXbjVpE9+BQ502p+AEeT9t9e1kN2W00nY8U0K0pZhG+cTEJxDHzQwqa9d2h7e4LMdhmFaGvoBwtDSpxWsydBA== 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=/wuNo8wI0kyIUxjvVWuG54+mJye/M5HbQEt106WDJ6E=; b=ZtFvMbcIrezUxCo+WnjfHNYn2DuDeiPdgXjFel/JhZ7NnvZ8FNhdE1pwnMA5F5jeesDysMLDi10pSpTPOpV0mgATu8akQ0yDM8YCz1xrnwN1yR63cRbq+lYGJ84dK24kCKYhz6lreegZ2vhZuyrnxgH7VsY9VOwaWSvod4KWkgk= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by SJ5PPF4B2F62DBB.namprd10.prod.outlook.com (2603:10b6:a0f:fc02::79d) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.30; Mon, 19 May 2025 20:53: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%5]) with mapi id 15.20.8746.030; Mon, 19 May 2025 20:53:12 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: "Liam R . Howlett" , David Hildenbrand , Vlastimil Babka , Jann Horn , Arnd Bergmann , Christian Brauner , linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, SeongJae Park , Usama Arif Subject: [RFC PATCH 5/5] mm/madvise: add PMADV_ENTIRE_ADDRESS_SPACE process_madvise() flag Date: Mon, 19 May 2025 21:52:42 +0100 Message-ID: X-Mailer: git-send-email 2.49.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P265CA0214.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33a::9) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|SJ5PPF4B2F62DBB:EE_ X-MS-Office365-Filtering-Correlation-Id: b6e7033c-f475-4de4-6ee3-08dd97172b13 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?J7mgkwbPn/j+hQj/Qb5dQPMKthP+wC7k3TbCKZvEilVIFaTdMMTANciHGbgj?= =?us-ascii?Q?mrNlBfamuHOvTRv0NoCs0K00om68F1ZMOw5Vqqgq8c3qbbms8suUCM3YnQrx?= =?us-ascii?Q?er9I49sst3OS3FpVbbB3oBRHx6KW9ObId4wmQ8ADsC0x6mpLaT7W9jr0yijv?= =?us-ascii?Q?5/a+79gSGCXvmsGoc/4K+eS7+pG0N9ajIcWd6ikRhV63flAlWa4q2mBORy8W?= =?us-ascii?Q?cl5x/EVQHYwNSJ3istXGccvGtsZZ/AhZ0hJr0gI65ubDpUgszi4HkyKIhHoj?= =?us-ascii?Q?AmMoE8+qawbqv2xNZ1+dtYq3cnUfj9/Rve1NBYN2KVUqrrT7qvTVTQUrEZn5?= =?us-ascii?Q?O3PJXxDXbBhwHyLuOOBtB0A89xRaRrGXsB1Wz4s84VV8AZptqZ5ihU9jhXd9?= =?us-ascii?Q?v+Ro+8GTbTViZS5l5VYlovRcmkFRr1tSH3I+fKozkC3X1Bq9+fjGQLgquFyG?= =?us-ascii?Q?2HbjYYRDQuDuYixAd6d4s2+qPyUjFQM+2povBwRPyhp+jx6dSrraWAW2yyat?= =?us-ascii?Q?fsN9OTvfuyMcqpO9/u5y09n4WmlrPbILEcdbW7DXSc2bxcmi2SDkKmkTmbig?= =?us-ascii?Q?T0cknpT/IDWdiw/60rgx1EziuZ9i1J3a5OLufU1LhA4IFESJXxdQplHPhMzb?= =?us-ascii?Q?H0sS2HCKKlUnmHOjt2k9oQTODb4eZyhodf5bDvm7Ua5RPoPMZ5Ohff4VM24o?= =?us-ascii?Q?ONZaGkTb8YsucBtEmGn5Rb2/elDYmUtgkymT7P7spTTG9EPq8vb8kC4VkXz5?= =?us-ascii?Q?A/txBUAv8MoOJ3kxENFW+2+sja02bq+gAru5ZHfcqVM8bMdTP2qXgdL52olC?= =?us-ascii?Q?FvHAZLToT3n2uFV9dpgMFrqVsUmRgklLYWiF2tFd/ibmbkybc4davbftrZVR?= =?us-ascii?Q?F4wc42PKfgqXjKDib7+aZl1y2mcKs1g7UoKHWGA5zx0xdBmposoOQOKD71s5?= =?us-ascii?Q?9PzkK8fg4kJsUsUKDpxvBt1EDtpmmNep9iyqEEaPrZvgTHvtw1xZtmFDpSR5?= =?us-ascii?Q?vUiEKuCoXCOBms+ypcaemMut/Neg3+q/ToRGsbYO3wJCpMtQvBgpQCkqtG46?= =?us-ascii?Q?Z0cBkxPplGJPZ8EpbmJ3UZQ84K7KxJdep8H8i9EpRG1cjTTvqMKZN4O68LWv?= =?us-ascii?Q?k/0qqzamY1RHBvX4SNOZ6LXO/kC7yxh3yN7MeItUs6kbEcMkirJq35a786q0?= =?us-ascii?Q?LFtHKzI18r4z19MpEeTpFgIylDJM34lPJpDiEn0ZiQSF6sTUXNoNqh9R9VPd?= =?us-ascii?Q?5NlrTsLFHXegKaWZjTk6CiKOCmWHSI+T3m9hvnWlUG3WSXI4GnhXP5Wy9sU4?= =?us-ascii?Q?Thgc6hQwen0dmQpNXTbh9IpV79HpkCcUo3WEWEyOu5XMVGW/1gArLAR+HY1F?= =?us-ascii?Q?CGy21v7AR7slrkvuVi+G81ZbK2zOa90kFuse1aCg6ugc4KslTiPuSCP2wSJS?= =?us-ascii?Q?7w5eAuUSdq0=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?oFe4luJ5etnQXWhiNF/giIEc9YzQmCt240pm+GGZef/IXTa7FZTU1Xob7TOP?= =?us-ascii?Q?TUd5B/3WTqxInEVlld4u2SUzMZVsiwfYa+sAvwPK399oO6I4msYSLV91q/pQ?= =?us-ascii?Q?ZD6b+6qDqFx7s3XIOWpdYhhAtgeNpo+frVfiU7S4Mpe/2oxa6HdXDpO3VOSH?= =?us-ascii?Q?E/Zzr6FoC5tDGahrW/osL0MqSs5sVbk04DwVS/eBQO1+yCdaY73Zz1h3Z6TJ?= =?us-ascii?Q?/Awtz06KC8EXM+bidJ1lN6WSbH66MI8M8vzPrsZGMUb06V7COo3aZFx/0EkQ?= =?us-ascii?Q?whG5+f4PLs4Hk9mWPQUCZixpo13De1fhS67QCN2jeqKDz7XeXLffbKtV6pkZ?= =?us-ascii?Q?Nli18q1BIHIwLYKPVPtoSm4bIy0NyNAA9kC+j1gRy0+d9i5oTrm7+ZcS7kx6?= =?us-ascii?Q?URYtWDGONuRnu/v7IVjAG9+qE7BeUegiLD5c3oi1lWfYBq6E2jTkKeMYHwEj?= =?us-ascii?Q?1kyuh5E+xJsLiRKw1Dk+zDNehtTeVbMfE5qlfcwvUdFAnhCFJ4GtbHIv+/e7?= =?us-ascii?Q?ky59NOp33Vf/q4Qoo2ZZbftqUn+nPgpeSmwClEMe4EBVPwHJ/UNrCYTh7Bap?= =?us-ascii?Q?uXWCoqC5Eku6SwtyiUcbjSqgvu5di+pQB1JkauEUFsCmGK+uS9+AkuPhRDWY?= =?us-ascii?Q?jVCWneVE7INGfqieaMiJpAy/7DAJPv9DCbWYdA5fhM0dCOl730eCYa4eHDic?= =?us-ascii?Q?/WEBuJfAPbw/RklLVKPvhL5opGwNBbxq3D7i9iu2SypxK0mlIaqW78g5YZvV?= =?us-ascii?Q?wRGTj54nqKxMgGLfzxIuJJsYt8mD3GFLdR6nPKtK8Bdti86R7bnZ49hlOFrf?= =?us-ascii?Q?I9+VDE76FcmFMHkXLFFbLtfVsS6e4IMGJ6WFGSQNR6mz5x1NYxh/smOLLNWm?= =?us-ascii?Q?bvoSK34TRazWty0r5GKjM9pJ4lG+BXbg+9KsPBbRtdrUUcaa4sb8r98Yvqqf?= =?us-ascii?Q?1gZf3Xn1Mpq9DTS8o17e04QBglyjfIxfZCHMlI6fW+HWKURGUTTXKeTUJqEx?= =?us-ascii?Q?WuMRFcVwKmEul5f8Pu5Rys5UUHUF6k82Wf4BoTb404AWD8r5rjmeiJGH3/Y4?= =?us-ascii?Q?6JJ2KC/WDARaOtuZi7TM7XUugBSLiBbEofvYexQF/G/C7DzVV1zP8FfdarFE?= =?us-ascii?Q?9+iCchOoUbM3Vnxqs+0gOmWqLywJhcqGn+Jk3MgEDuGja3L7V2ny+k/NTS/j?= =?us-ascii?Q?h951q3n0sKb4yIti6/9Mn8C/JjmvIsZZlggRd2aAdJBjX2GPXIvZ8FO2Ecom?= =?us-ascii?Q?iV3xj4o/dqnqQWl6J5RabbobLhZguqyAWgKDtSJDjijukcxVjH209WnOzYdm?= =?us-ascii?Q?dkasTV+cvLmy3GePHpKsdx8Gdp+zmvQX7GHTcfC84L7i6YYdSiYWRLIm58Av?= =?us-ascii?Q?AfNDrPrS9J1+t66Wak7fNG8Vbh9zceIcmiMJmYmDJi0gvh+a/bj6AS4kOlq/?= =?us-ascii?Q?zRMHjNbWlnMf5AgvVlP5I57Hq2anRE5pjaYFxZ48kj2QmVxOhNoe6Ux77qp6?= =?us-ascii?Q?0Y4fnHuze+R5bb8grRV45kZMefEBQ+VHF8TS9yUdi6y3wLREeFL95leFQEkd?= =?us-ascii?Q?G/miXF48zCHALIuSLIBfEqqxOEnU0h6ShIckS2HOcMOl5uKU5zdLYhMVeMdB?= =?us-ascii?Q?Hw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: bNg6hEinlHmStw+lXwDi7IIZFHkMc18zwZ/XbonwzjWbKz6PXPlE0BUAkDjqacjA4iqX3z9LmhF7/aDmL7uoTA7LDeHnwdHckXqNKSxg38gv/4yGzVb0A70/52dTDKOCOgDCN1NfdWFxRgwKxUlACJ9Px8RWG3uOmi5RvZFd0FeIhyAJ7ZmLER0GWkQprAVDdtFESnR55kX7FKG3c6ZF/oLcveu4eGoey827PlDzDkJhsSKVQZDeHGQK7oXO7C/51oHeqvGu2W5JJV1QhzrRATv5HKSCPAaaL8P2pzLJfb5zbWPYRBJrOyrCyJaAmNwEylmHqUpNNr70dXWEtF8Gt4GN8M91fmQFjt1pK1jYSOH0hhLVRIHPgndywcJlIqe1k+nRZD2LWtaFn9igw8ZNlkO8VKXkDmuduzeA4I2cj8Y9qllZXTOsqqKw8DWOJPpm2uou94fDqPpbCMCZ6ZN8HY5sTfO9nUa9O7RCGZJPn4twik1SJz5TZ3B7UHvf9b+NUMaNgXnonClHHAberoP4bfTwGeOeRt5K9I6udX0goIW0Yk8CZOiOOb8bRgRab4AfW27lrBwkuZf/6JugQqNLSXwkxoEbGDwnHtf2CzO+N3k= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b6e7033c-f475-4de4-6ee3-08dd97172b13 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2025 20:53:12.0162 (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: xiGqetPQpSkNeiTlyXzLsfZadQL9sl/GnYq0EqleGUuW/hqdiEdEfvVVQIgu5pcvr2tp6cUaV4HvBEot50nYNPbbSBo76ixS5MeGiQPgTMM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF4B2F62DBB 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-19_08,2025-05-16_03,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 suspectscore=0 spamscore=0 adultscore=0 phishscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505070000 definitions=main-2505190194 X-Proofpoint-GUID: QJFe-F71hEnVnIiS_RiyVkdq6vBoVKu1 X-Authority-Analysis: v=2.4 cv=JJk7s9Kb c=1 sm=1 tr=0 ts=682b9a45 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=dt9VzEwgFbYA:10 a=GoEa3M9JfhUA:10 a=yPCof4ZbAAAA:8 a=fbqJCjwplNoI79WyuVMA:9 cc=ntf awl=host:13185 X-Proofpoint-ORIG-GUID: QJFe-F71hEnVnIiS_RiyVkdq6vBoVKu1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNTE5MDE5MyBTYWx0ZWRfX8WsbiXjDKV1y E282bXIkFtmKxuDa2MPbnjpnlPrqOUQzQ77+cYfYsVmUPPH4MHk8h5RSEUw+zQRDS6l79vgOZOK VBhRcVZqM6js9wEDzllLb2K0i9oyn4L6Y6N21Cu1/ih30PkAqeoMRv430SbgfvKi3XF8wHl3WvG hoInAil9jmswkF3PwjHYJlIlhuZubi873Op26hjtAeshtsZSmxuf1aLHmxmRCj0c5IGd19Fm5+u hbHRx/NfjOgGoei1woqA484lWomdnvBLmGeP1xlVdtB8udsAq4gNic6/tk+o3r7Kmj+eYU6a/o6 AxYzvyV0ZfTiA/rkjhHUYjpofYBlo5o/Gh3vblz++20ZeotxAt9Taaj6gMKFxq0/nP++isNZFWz oy5j+8LBzqQUZn5LerhncQ7p33ofy9+tRhMZiPNCxpG3XV07rZUv67fMgt8FVYgE2FrQIyC0 Content-Type: text/plain; charset="utf-8" For convenience, add the ability to specify the entire address space to apply the madvise() flag to. This is best used with PMADV_SKIP_ERRORS (this implies PMADV_NO_ERROR_ON_UNMAPPED) to skip over any VMAs to which the flags do not apply. When this flag is specified, the input vec and vlen parameters must be set to NULL and -1 respectively, as the user is requesting to perform the action on the entire address space, e.g.: process_madvise(PIDFD_SELF, NULL, -1, MADV_HUGEPAGE, PMADV_ENTIRE_ADDRESS_SPACE | PMADV_SKIP_ERRORS); This can be used in conjunction with PMADV_SET_FORK_EXEC_DEFAULT for the ability to both apply an madvise() behaviour to all VMAs in the process address space but also to default set the relevant VMA flags for any new mappings, e.g.: process_madvise(PIDFD_SELF, NULL, -1, MADV_HUGEPAGE, PMADV_ENTIRE_ADDRESS_SPACE | PMADV_SKIP_ERRORS | PMADV_SET_FORK_EXEC_DEFAULT); Which can be useful for ensuring that the flag in question is consistently applied everywhere. Signed-off-by: Lorenzo Stoakes --- include/uapi/asm-generic/mman-common.h | 1 + mm/madvise.c | 23 +++++++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/include/uapi/asm-generic/mman-common.h b/include/uapi/asm-gene= ric/mman-common.h index 6998ea0ecc6d..3d523db2f100 100644 --- a/include/uapi/asm-generic/mman-common.h +++ b/include/uapi/asm-generic/mman-common.h @@ -95,5 +95,6 @@ #define PMADV_SKIP_ERRORS (1U << 0) /* Skip VMAs on errors, but carry on. = Implies no error on unmapped. */ #define PMADV_NO_ERROR_ON_UNMAPPED (1U << 1) /* Never report an error on u= nmapped ranges. */ #define PMADV_SET_FORK_EXEC_DEFAULT (1U << 2) /* Set the behavior as a def= ault that survives fork/exec. */ +#define PMADV_ENTIRE_ADDRESS_SPACE (1U << 3) /* Ignore input iovec and app= ly to entire address space. */ =20 #endif /* __ASM_GENERIC_MMAN_COMMON_H */ diff --git a/mm/madvise.c b/mm/madvise.c index 9ea36800de3c..0fb8cd7fdc7a 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -1992,7 +1992,7 @@ static ssize_t vector_madvise(struct mm_struct *mm, s= truct iov_iter *iter, static bool check_process_madvise_flags(unsigned int flags) { unsigned int mask =3D PMADV_SKIP_ERRORS | PMADV_NO_ERROR_ON_UNMAPPED | - PMADV_SET_FORK_EXEC_DEFAULT; + PMADV_SET_FORK_EXEC_DEFAULT | PMADV_ENTIRE_ADDRESS_SPACE; =20 if (flags & ~mask) return false; @@ -2010,15 +2010,30 @@ SYSCALL_DEFINE5(process_madvise, int, pidfd, const = struct iovec __user *, vec, struct task_struct *task; struct mm_struct *mm; unsigned int f_flags; + bool entire_address_space =3D flags & PMADV_ENTIRE_ADDRESS_SPACE; =20 if (!check_process_madvise_flags(flags)) { ret =3D -EINVAL; goto out; } =20 - ret =3D import_iovec(ITER_DEST, vec, vlen, ARRAY_SIZE(iovstack), &iov, &i= ter); - if (ret < 0) - goto out; + if (entire_address_space) { + /* The user must specify NULL, -1 vec, vlen parameters. */ + if (vec !=3D NULL || vlen !=3D (size_t)-1) + return -EINVAL; + + /* + * Ignore the input and simply add a single entry spanning the + * whole address space. + */ + iovstack[0].iov_base =3D 0; + iovstack[0].iov_len =3D TASK_SIZE_MAX; + iov_iter_init(&iter, ITER_DEST, iov, 1, 1); + } else { + ret =3D import_iovec(ITER_DEST, vec, vlen, ARRAY_SIZE(iovstack), &iov, &= iter); + if (ret < 0) + goto out; + } =20 task =3D pidfd_get_task(pidfd, &f_flags); if (IS_ERR(task)) { --=20 2.49.0