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 C6C83D149F4 for ; Fri, 25 Oct 2024 21:58:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 495D36B00C5; Fri, 25 Oct 2024 17:58:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4468B6B00C9; Fri, 25 Oct 2024 17:58:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 297E06B00CA; Fri, 25 Oct 2024 17:58:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 064346B00C5 for ; Fri, 25 Oct 2024 17:58:58 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 3A7D8C10F6 for ; Fri, 25 Oct 2024 21:58:36 +0000 (UTC) X-FDA: 82713489726.23.549E5FA Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf25.hostedemail.com (Postfix) with ESMTP id DAED9A000A for ; Fri, 25 Oct 2024 21:58:39 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=RgBCdmV0; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=vVU7JNlu; spf=pass (imf25.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1729893455; a=rsa-sha256; cv=pass; b=SLkmfFUV/g/7zRaaxX0yb1k/QpK47+S4aTkQHnhCcb61ARidimG/ZDColGcWI/aJWlguFH ZtyUG96G0cxblfuAv0zJjoXxEBE97z1949AtWyS/oEUEC2hwri7mQT6GuIx91OAK2LSSMY cuFTGS29pxQGTpJhgw9z+knWrRx50Lo= ARC-Authentication-Results: i=2; imf25.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=RgBCdmV0; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=vVU7JNlu; spf=pass (imf25.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729893455; 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=7npdWeOF1DUYzutvC4eMFd2G37/UAboOgmLiA1Uhx0s=; b=xnUiyUokv0FejnYyH5M6thMpZGzfYx+owYMyDK5NKvY31PPE1YH1GT1bOygME+rPxaDcmt XCLeoN2YqRGXR0L0L7ZRg98EZIc31VwmjZkSrX3jwAoCUmp5XDMuWXflylvT6VnjiaJTck W6pG2L7rpNp91dkqae/TrDnGE6lKPp4= 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 49PJdTCM004855; Fri, 25 Oct 2024 21:58:39 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-2023-11-20; bh=7npdWeOF1DUYzutvC4 eMFd2G37/UAboOgmLiA1Uhx0s=; b=RgBCdmV0+XcvX6b/9n8tBrJx3GPbavURAk Nni6e1YH77mpq2oPHYwfBN3h8HmoKbCC+Jd3hIr99kBWC4khONqxSgF/YA3VkSu1 Mz0NHf+1zdd60d/RZUdFnF8+NH97MH+76xLKomVifEtIYJbwALKf2dBHTMyjEBvY huzlYaZe2oVK7PFJbvc8SylRrGrb2Ji8UwETS8LoPL/BiXQAtcq6yrts2eljWWgP /LnBCUUnOXcwdyxqBy7j2/B/8mUOHWm1o6HDcxGVZ0Nkd2NiMnkrOlZZCVlU4kAs 3TBl4IAkAAo82iRLkmkel4oorhBMIbpd0kNFoKk7VolXa6UO4Xxw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 42c5asp0v7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 25 Oct 2024 21:58:38 +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 49PJjA81016441; Fri, 25 Oct 2024 21:58:37 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2170.outbound.protection.outlook.com [104.47.58.170]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 42emhedavu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 25 Oct 2024 21:58:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dItL58KtXzSN/3dpq73vk+3sXdPqBRQ6UEQm4E/5WZu3TllVnNgAGHjPl7anl5/k0oJlglA5fAmujXi3a1UNr6LcnbUvKvNLEIpSZGY+uCjCTuxySkWwL54c+iynqoJX74ncx5ZHyZ71tweEe3ouULxBrRGtdSunZvcrgi5QseVQFH46pPSSBWyCaw9NuQFV9xmXpE9PWWJR92nAWr/yunhgwvfI/k8Sha8up+WsuRDfi7v2/P7+8/gPst1v3M8bv4DHR5dCf8G1Ai1NNBafNQZoONYbqUzobZmkM8mjHx8yTQQIGeen1RR4uCXnksxznppYWwKyoOIYwQ1nt4QG/A== 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=7npdWeOF1DUYzutvC4eMFd2G37/UAboOgmLiA1Uhx0s=; b=l5jMdu/HJqUZifDbYldNsIPEO+KYQzeKLhlQEsc2d2pChVZICnVITk1hsuUzNi27B0YVZ11uE19do+u6BiaXkagiC8h7UN1E2t1xI+N1CSRT2cHNmzMBsCasDqcuKU7SJkkzhjQ4qrjLgJmTyiFyVn3qsQXKRJRu76+rB1lpQmRkajVNLZGrLeeJjhLGkQT4/dMtQJYVYU6iRBAaXkU4RqFf10/wGSPduTSHR1mmCQ9qBYgrzu2CBTEv6kLbkWWjkCZoGSIwTdW1i54P1O30u+utDnvweqhyV5m+UaxAjOS5belVBL9IjlbTuYoH/SOYL46i6wph8RgznGFVPabDfQ== 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=7npdWeOF1DUYzutvC4eMFd2G37/UAboOgmLiA1Uhx0s=; b=vVU7JNlud8mGE0WyJv5V20AA9MKbkvNt1c8D0QiIvxFW4SLKyzsgL/FU89LEjHkbuXBQ1+UhHrbSHurOxSj+7iMj0FNxUWHxKzxeaQZ/uRvQuwHnEEnlPdI0LxzHMwIzkWXwq7bI/ZJ+SzKFX3ZCNfZH+nayUJNbQxAPOY25ip0= Received: from BYAPR10MB3366.namprd10.prod.outlook.com (2603:10b6:a03:14f::25) by SA1PR10MB5687.namprd10.prod.outlook.com (2603:10b6:806:23f::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8093.18; Fri, 25 Oct 2024 21:58:31 +0000 Received: from BYAPR10MB3366.namprd10.prod.outlook.com ([fe80::baf2:dff1:d471:1c9]) by BYAPR10MB3366.namprd10.prod.outlook.com ([fe80::baf2:dff1:d471:1c9%6]) with mapi id 15.20.8093.014; Fri, 25 Oct 2024 21:58:31 +0000 Date: Fri, 25 Oct 2024 22:58:28 +0100 From: Lorenzo Stoakes To: Vlastimil Babka Cc: Andrew Morton , Suren Baghdasaryan , "Liam R . Howlett" , Matthew Wilcox , "Paul E . McKenney" , Jann Horn , David Hildenbrand , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Muchun Song , Richard Henderson , Matt Turner , Thomas Bogendoerfer , "James E . J . Bottomley" , Helge Deller , Chris Zankel , Max Filippov , Arnd Bergmann , linux-alpha@vger.kernel.org, linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org, linux-arch@vger.kernel.org, Shuah Khan , Christian Brauner , linux-kselftest@vger.kernel.org, Sidhartha Kumar , Jeff Xu , Christoph Hellwig , linux-api@vger.kernel.org, John Hubbard Subject: Re: [PATCH v3 1/5] mm: pagewalk: add the ability to install PTEs Message-ID: <046fe24f-6768-4b57-80bd-028514b0db51@lucifer.local> References: <9be732fd0e897453116b433fe2f468ef7795602e.1729699916.git.lorenzo.stoakes@oracle.com> <8b1854b5-5c0a-43b1-aed7-aa4e8b8e8a1a@suse.cz> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <8b1854b5-5c0a-43b1-aed7-aa4e8b8e8a1a@suse.cz> X-ClientProxiedBy: LO4P123CA0358.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18d::21) To BYAPR10MB3366.namprd10.prod.outlook.com (2603:10b6:a03:14f::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BYAPR10MB3366:EE_|SA1PR10MB5687:EE_ X-MS-Office365-Filtering-Correlation-Id: b80aa25e-0f35-452a-70d7-08dcf54029e4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|10070799003|1800799024|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?/E3ees8SSxRviO7+Ori02R6NyBlTkk19kqmsUy3fUPj/YeCC++kFstWBWeTR?= =?us-ascii?Q?RluSAG2ALR29MWm7GOLKGGeXkM8nr2X2QrrTCGQIf6uj8zozCf941iXhK+3C?= =?us-ascii?Q?H6rI0YfLF95UWuV2ycwhlQ7w1gL/PfKkuhmYZPUXO8GCtmkF4y2ibUUSDVfF?= =?us-ascii?Q?e5dI6o6grFmunbCrDSkhgFGcpGD6wpQO1go64k3Oo6D2NgvX0R63V4SKV8Ik?= =?us-ascii?Q?bzEzHdJ17J1mJPYN8VNDXQcDp4M5WHvdQHfyA++I9ImkDy7sMFO8/FqbDDFk?= =?us-ascii?Q?tohPVYk0dsQHqrAHgVM8U+o9P1H8thsYzSiXV4Dd2rsZULh8eZvpzrgfECp2?= =?us-ascii?Q?WvWzFgt7G+nI7W0Q0uMcNTY0GIk+t62JjSA4cCfrloZDWrfCPkPcY6q6MUC5?= =?us-ascii?Q?hXWOrOT1FV3rjLxbJ4iPBQhw/Xpv3MsWqCZL11ibip/L+P7lDO9tbtRCzvVr?= =?us-ascii?Q?oFrIBawWCTB/sRBgUMOhnrctNiSXThJnVoYP2yW7q58PiuIuhmfsChpvTXC6?= =?us-ascii?Q?CbADKajoisYBrnpBKz8fgu7oLbdHIDTB9t8rIMwJzAGLm9WepalX27PyT4+O?= =?us-ascii?Q?mLN5UJLUSXhbOK8RbqpBHMTWcu43+r9+WiRcpLpH/5ZEvauOtU0CWQlCl0C+?= =?us-ascii?Q?p/bODjn7xetxX97irG8IH6wz4au7BIc/QSbhZW+Ztb2mvGTVGY6R9BEI3nXQ?= =?us-ascii?Q?GlvozjQL+1x9/GPLEnPiS8NyuWyihhu6HdEgjcxNwjMTuA5O0HwDwTAsCBef?= =?us-ascii?Q?kX5G3EWH2+Xyq8iet0KrfG/AMUuiTQuJ1DFU7NO5Ynnm+tWzVwsIIq0YSaJA?= =?us-ascii?Q?4Uqh4Rn3sfjnmgB0X0XRCMOn/ijUochQ7h5LNhkVMjffqZkQIS/Sk5kNotBi?= =?us-ascii?Q?c8y43w4cyjpUctEF7bNmoUyNK47PUVE/Jk1KlNiQV/IedyZxixsrpq0frsxH?= =?us-ascii?Q?Sr66tqaHK1S+36ieu0NhT62dIooOBHu81qoEHibXHDASilJwXkSKlASBTJtw?= =?us-ascii?Q?kAZLJ7MY9ltWVjA4K1WBKj1Q6+DOmyZqNwhYgd910xJpi8RKFL5ie3Kp45Ky?= =?us-ascii?Q?J6qB884ky2CHWG7Dw1DjCjenUaB8GAqhd8u/G6sHQOzBgPaMxW4dfgCzEQY2?= =?us-ascii?Q?VusuwcjnSMQO7YP47pTDZaTYZOPIYSHlfO+DqQEbTuEL1GSDEfcAwzkxxeua?= =?us-ascii?Q?tP6AwXaQf5BPZT4hn9l56W683ZVP5EMMtOinynqBuGo2OEookjI2uDk7y9hE?= =?us-ascii?Q?o+L9g0L7NCi1tv28IHrwCYJf9BFZMHmYXCgwRdWgvb/WQqReF+WyqdvcLYAQ?= =?us-ascii?Q?d+6yFwvInROt2WuOU77DHI6G?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3366.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(10070799003)(1800799024)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?vJJFyJA7BasyWy9BCQPLLd5W2lIuV7Idf10hioxg17xWz259UgvKtti8u6MH?= =?us-ascii?Q?xAoEzYT1TlSselCnFNXnuvud8ENWzxf1/YqoieXV1RyAdBlA3EXd/WPtY6ni?= =?us-ascii?Q?G3zksNf+gJ8/r5j5u2GhY1yfiL8QAHZnWBwDPDCwdb97zCZVZGyqNZxnzGnQ?= =?us-ascii?Q?xK9hakZAog2CCE0XF/kWDQGxq5wepNViS9lT+3/QlX22jrIGi9z8gGkVGrB/?= =?us-ascii?Q?Q5yQZv9Q4poWNE46QtESa0iA2EaMPh3tCtBHx+d+q+E9N9fnLbikJaTV3P72?= =?us-ascii?Q?+bjWyqc8gSeNqppj4P/up3lkLsIExtJlVE3LljiJ3YT30pu1Io3L3gubtEjy?= =?us-ascii?Q?xxkLsC3zuvCJMPrhwoGLoRZDRulrX/oUdpDHHl95VRKWuVtXcxh7ZFyWdCme?= =?us-ascii?Q?vticDKYWLOIfH38yYMnpana5IFkrWBnQHnPatKQ3ApPEIcPbbWa8bqPkMPh1?= =?us-ascii?Q?Xt73fGYJypwuJPVujrERCQ3HpgQ0i/qCXBbMQ2Oow7ERhAE9Fh6Dnk6g1S1t?= =?us-ascii?Q?fdxf0ztmjI//eL6Xa1XLqHeXnMHZwJva4DdWgwNdZm2RN4Piw0gN4Crkg5qq?= =?us-ascii?Q?Us3W1OezzdLJJBJfFTOuC7dR9N/aGK8/LbH0krNkO8xJEsbnfOLH4IWzOCBC?= =?us-ascii?Q?Zv7OTyfonDgwhXpnfbMrXAdnn25PsU3DvUjCToHs+YpoTgNubiq+K1FEwoNb?= =?us-ascii?Q?/4Wqqm51WxpBsqnPWxMhPYvnjuJOUht5dRpwIFZf/tKd1MUUae33w5StEPgJ?= =?us-ascii?Q?oA9rEFAb114jkY1cd1sY9Maj+yZ1bV317LRfIGrb54TyngwrHVAW34yKXrqr?= =?us-ascii?Q?zVNki51pHNYGKhPwKiQk3LBXASP+CPq5O16/GIq0cFF8wyX6j1fFwGsMihBQ?= =?us-ascii?Q?FY1TNdKBhwfzxNroXXTkHqoTa74kTftIkbQ4mMwr7Kk10w/og2F4xjmHhonI?= =?us-ascii?Q?VmVucbY/ayOKg0q0t4Ilx43HeSoNrwe2FmaWDUItEm/rUhWRmBF/30NxyAxe?= =?us-ascii?Q?g/WBTVKhGKInv0miGiVdQ4meqbSW6cgFWx0PIBkt3cbBJd4i1lKxXgsMPNND?= =?us-ascii?Q?JouiA5bMPdFSaFuLxjYxmszP5ycBU+m+D7pcvYfDQGVPK9iOb6qdRDT6BPsJ?= =?us-ascii?Q?Rd5GbSTx7ffTpfNO+UQB2xLK0W9fnn8/CbRADuJvzv0APIQp17Kf5LQ7WBUB?= =?us-ascii?Q?3Db6JbPvT5qbIddGjhSdDA8P8gaE8v1zRUggZt5/2K2dhEgMBISpn5eN/dEo?= =?us-ascii?Q?8+S3JTjtdXM5kBst3igu2LYKsMRbmyfHvkzWXvqeKeNLfAs1ZfUhXObZj3UX?= =?us-ascii?Q?pna/WLcOtLDfoTwY+w1eEY/Os8c2BJa6ogSq8rMNXDcibF+JRcTVcg4YRNbK?= =?us-ascii?Q?tb0Xzd1eZOy2FQKFXh81T9hjt3IRAXUl7gFZYA53QHWdgosyBOBflMzrQzVI?= =?us-ascii?Q?e38rvrmEHcGYGbUujlP7271szXrlYGOedFTjADq4cGeN1667JdBVE51A/kSZ?= =?us-ascii?Q?Zcs/9erUskdyD20Akn3Hi71A/3gioyYgbw+W0zYTd1babkkXYKoRmt19USAV?= =?us-ascii?Q?syOvmgaxgIVx0RLkcnympg2NmJVBRwGdHZ5gZcVx2dvbMFxfkH+A5iLoDe7l?= =?us-ascii?Q?9JLT7TH6yv8X4A3B0V9FlNo4AFdE2rqkv2gjWgtZzAYLMRIoRN/cyQ1F2cIh?= =?us-ascii?Q?jAPWog=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: RqzVouw9tGNLrC7IbSIZGTS+NepnH7JaKI94mjXBbRHozisuRPlZjjoAB0Gh41qFqRF60RJGgIdI7zlJAoD3BgRXPEoS+wxeHUwiVNxBKD6kQRswpz1GptQyyNiolFx/x7A1XLdrIFfi8YgaU6pXYc5AnUZqppdSMJkVTuVgrHZJTp0noRDXyjAPaFpg2h1YtN+x1o6et1WumefsET+tR3qxHXpNzbxHr0KAUWBCirUJWNWUcm0iA7f4ZJK/au9CUfTdJ+99ijDDquEhwY0OGMwUi3+sqGJ1Jb9ogWL+96BENwGgRr8nxyzSq61TGRJ8t9w+YFpFu3h2a7gE/YaQxbAC8wyyH5f9K4B18IEuT6R1883kQ6RApw00Hc4WYqXmIm8VAwkQqPSwn+vDAO/rCEgQyWYzh3WHRUKQhgKnoi91PI8UC/JMVBkvt+59aE2jkmStil87k+jLJ0Q+xq1UT9WsN2qqKvOu89XryncUXCNrrY7yTxYihpxaK4MFt2etLsQQsaN749Z6+kdT0393LmSLQDp1j1BgO32+QDIf34sdjX4JOpQ5YPt05qfWTnBluiMZ2Fv9Q/v7VaNCXrQ6VkSYCPab/6xLc4BTRmvy0Gs= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b80aa25e-0f35-452a-70d7-08dcf54029e4 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3366.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Oct 2024 21:58:31.2176 (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: Tv6hbxuq6pw3AO6lCOIqQSTfhb7A4lvfoxwUNwDI+e7UWwbQRikFjVdXJ9PHsrRH+573RAwuEE1OyPl8cJ1xEozUq5lTDMar+wycRPYkBtU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5687 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1051,Hydra:6.0.680,FMLib:17.12.62.30 definitions=2024-10-25_14,2024-10-25_02,2024-09-30_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 phishscore=0 suspectscore=0 bulkscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2409260000 definitions=main-2410250170 X-Proofpoint-GUID: jL-Zq0Ntj63Omg4yom9jh0Mj_tO4TnKt X-Proofpoint-ORIG-GUID: jL-Zq0Ntj63Omg4yom9jh0Mj_tO4TnKt X-Stat-Signature: e8myj3gwox4gs73dyo555apm9tc6xg4m X-Rspamd-Queue-Id: DAED9A000A X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1729893519-632594 X-HE-Meta: U2FsdGVkX1+W1mHr2p42i8eN2BvFuPV0Nx+MkeI31fga6JtZY6XNOCW05kVsNPEq3AnB2tq96CTWuIcd//HHuCY226HmQm7cs1WxyQcD2b/W2Ob8J3kmUF76PRTrqgTECo3G7hyLQmjnPhbLNysr1lZkoJaYQDK8Kf3d2kTGcBDKtchIgDFEx/vst0jpHKmaX2bXFKA1UhVkFumTDYS6jB6CAG2nuhtN1GLn187GqMLbqSbWZoFOV53Pb2Ph49RBMq3uks7zgEP/jCleqhj7eMRDZd611VvzjCUT/sQb5BZxs2F9Po2mkrZYaUYNH9qSvcV87l2Bm7g+AGNQb2m/WaXx3n0GKp44QsaSF3uoUGZ/iT+y1lZEKcVlh6S+uPxm7dAm00tYlKc4IjXi5LukkuyiwOBUsDNSCpgGChUugpr3vv8JHbAOic4iFNAH+08RNMoZbihBYZt7gCeUAsEukjDiloP4TbjL+CuE2Czzm/5TwnIzwvffgSIhaX4NEGzqnfYzRw0XgUbT6FrA0RUM7egoNWV2KdlUPHOlexruUo3J9WrynokNYCSfhxF8fGbd6Ayh85JqwPqeBh0jxFpSuVyiiTZEPRGdkawkFOhFMthLKdX1xvFdSuKH+PxXP6VchcdU+mDagzqQFdmFlt9DNaUGiHFdp6KiRaVMDuEdjmGn2Ce8amYTilB+1LC6mRgm75mdqWbG9D5C3XVrVuDOPI+3sxigWuairHrj0ZSNdvkdWiM7EKYrL4IJnjopcA+ur+Bcm9omSKhshqxWHTla4dYUgIU+uMcUEb/7woxOEXEyLpl/6xKuTQkDNnX10RAgwkGMcpCpganMPfBkSxsEieIIJ4h8s2vTRsNuD7cs8Rcepd9J+7zpT/LbJlUgexZjg4M7mbYya/5qUR8bBmkr8qSnbARJaarqi81Br1eZIe27c9BTzM/56W84eFYQZIneiRmSZnTHWYJ8PJc3fAb 5GGfDorO GtVit+nqk5AnL1WGLItKKsn9rDqIWIaFUj3SEABOFhvzR8Zpcxzx+m+82LCt8oeaE4FbaJWsLBoncsrPxZ9ala1OEwvUO03rDszklzuNamgKmDY+pKq7dsdbwtnXHa3/NoqHfxDbesuQLJyYieoGxoHo4ASAmnT8lSfniM16R9uz4Xb35DuihG/DEmrE0N0EUTWN7DJg64nx/Loj7q067JhWGbZLecoK7qpFk7Ug6I0M41Tsj4ZwsvKF7wlk1dhYYALSF+37t+CG8+YtV1na0WxEptiWWMixxXSResVhXSy6WQCgg/Jf5EQhAQGJFCb1LkxBEMCqrQ7/p0dccd0+DW9B3uH/J9ew9yNEWlx5xgg49h5pGuKjMLbj5ndaeiNcmKAf5IZjk0gOl9Wu6WsDluyEFh+o0WcfWbTBTbpoarPOUvSA7WyKwqF1N9YSc5B1/pY7qM4mu7MRlxllAzYnPXW1kcOtEqpAGayOpvgQHdYQ1CNESuxQV38+3rGlSOtT7ohX1C8jAKag4DjC8WGOVkcK+hIUOl8Sfyzc737g9oX3Pdws= 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, Oct 25, 2024 at 08:13:26PM +0200, Vlastimil Babka wrote: > On 10/23/24 18:24, Lorenzo Stoakes wrote: > > The existing generic pagewalk logic permits the walking of page tables, > > invoking callbacks at individual page table levels via user-provided > > mm_walk_ops callbacks. > > > > This is useful for traversing existing page table entries, but precludes > > the ability to establish new ones. > > > > Existing mechanism for performing a walk which also installs page table > > entries if necessary are heavily duplicated throughout the kernel, each > > with semantic differences from one another and largely unavailable for use > > elsewhere. > > > > Rather than add yet another implementation, we extend the generic pagewalk > > logic to enable the installation of page table entries by adding a new > > install_pte() callback in mm_walk_ops. If this is specified, then upon > > encountering a missing page table entry, we allocate and install a new one > > and continue the traversal. > > > > If a THP huge page is encountered at either the PMD or PUD level we split > > it only if there are ops->pte_entry() (or ops->pmd_entry at PUD level), > > otherwise if there is only an ops->install_pte(), we avoid the unnecessary > > split. > > > > We do not support hugetlb at this stage. > > > > If this function returns an error, or an allocation fails during the > > operation, we abort the operation altogether. It is up to the caller to > > deal appropriately with partially populated page table ranges. > > > > If install_pte() is defined, the semantics of pte_entry() change - this > > callback is then only invoked if the entry already exists. This is a useful > > property, as it allows a caller to handle existing PTEs while installing > > new ones where necessary in the specified range. > > > > If install_pte() is not defined, then there is no functional difference to > > this patch, so all existing logic will work precisely as it did before. > > > > As we only permit the installation of PTEs where a mapping does not already > > exist there is no need for TLB management, however we do invoke > > update_mmu_cache() for architectures which require manual maintenance of > > mappings for other CPUs. > > > > We explicitly do not allow the existing page walk API to expose this > > feature as it is dangerous and intended for internal mm use only. Therefore > > we provide a new walk_page_range_mm() function exposed only to > > mm/internal.h. > > > > Reviewed-by: Jann Horn > > Signed-off-by: Lorenzo Stoakes > > Reviewed-by: Vlastimil Babka Thanks! > > Just a small subjective suggestion in case you agree and there's a respin or > followups: > > > @@ -109,18 +131,19 @@ static int walk_pmd_range(pud_t *pud, unsigned long addr, unsigned long end, > > > > if (walk->action == ACTION_AGAIN) > > goto again; > > - > > - /* > > - * Check this here so we only break down trans_huge > > - * pages when we _need_ to > > - */ > > - if ((!walk->vma && (pmd_leaf(*pmd) || !pmd_present(*pmd))) || > > - walk->action == ACTION_CONTINUE || > > - !(ops->pte_entry)) > > + if (walk->action == ACTION_CONTINUE) > > continue; > > + if (!ops->install_pte && !ops->pte_entry) > > + continue; /* Nothing to do. */ > > + if (!ops->pte_entry && ops->install_pte && > > + pmd_present(*pmd) && > > + (pmd_trans_huge(*pmd) || pmd_devmap(*pmd))) > > + continue; /* Avoid unnecessary split. */ > > Much better now, thanks, but maybe the last 2 parts could be: > > if (!ops->pte_entry) { > if (!ops->install_pte) > continue; /* Nothing to do. */ > else if (pmd_present(*pmd) > && (pmd_trans_huge(*pmd) || pmd_devmap(*pmd))) > continue; /* Avoid unnecessary split. */ > } I quite liked separating out the 'nothing to do' vs. the 'unnecessary split' cases, but I agree it makes it harder to see that the 2nd case is an 'install pte ONLY' case. Yeah so I think your version is better, but maybe we can find a way to be more expressive somehow... if we could declare vars mid-way thhrough it'd be easier :P Will improve on respin if it comes up > > Or at least put !ops->pte_entry first in both conditions? Ack yeah that'd be better! > > > if (walk->vma) > > split_huge_pmd(walk->vma, pmd, addr); > > + else if (pmd_leaf(*pmd) || !pmd_present(*pmd)) > > + continue; /* Nothing to do. */ > > > > err = walk_pte_range(pmd, addr, next, walk); > > if (err) > > @@ -148,11 +171,14 @@ static int walk_pud_range(p4d_t *p4d, unsigned long addr, unsigned long end, > > again: > > next = pud_addr_end(addr, end); > > if (pud_none(*pud)) { > > - if (ops->pte_hole) > > + if (ops->install_pte) > > + err = __pmd_alloc(walk->mm, pud, addr); > > + else if (ops->pte_hole) > > err = ops->pte_hole(addr, next, depth, walk); > > if (err) > > break; > > - continue; > > + if (!ops->install_pte) > > + continue; > > } > > > > walk->action = ACTION_SUBTREE; > > @@ -164,14 +190,20 @@ static int walk_pud_range(p4d_t *p4d, unsigned long addr, unsigned long end, > > > > if (walk->action == ACTION_AGAIN) > > goto again; > > - > > - if ((!walk->vma && (pud_leaf(*pud) || !pud_present(*pud))) || > > - walk->action == ACTION_CONTINUE || > > - !(ops->pmd_entry || ops->pte_entry)) > > + if (walk->action == ACTION_CONTINUE) > > continue; > > + if (!ops->install_pte && !ops->pte_entry && !ops->pmd_entry) > > + continue; /* Nothing to do. */ > > + if (!ops->pmd_entry && !ops->pte_entry && ops->install_pte && > > + pud_present(*pud) && > > + (pud_trans_huge(*pud) || pud_devmap(*pud))) > > + continue; /* Avoid unnecessary split. */ > > Ditto. Ack! > > Thanks! > Cheers!