{"id":2180668,"url":"http://patchwork.ozlabs.org/api/1.1/covers/2180668/?format=json","web_url":"http://patchwork.ozlabs.org/project/linuxppc-dev/cover/20260107091823.68974-1-jniethe@nvidia.com/","project":{"id":2,"url":"http://patchwork.ozlabs.org/api/1.1/projects/2/?format=json","name":"Linux PPC development","link_name":"linuxppc-dev","list_id":"linuxppc-dev.lists.ozlabs.org","list_email":"linuxppc-dev@lists.ozlabs.org","web_url":"https://github.com/linuxppc/wiki/wiki","scm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git","webscm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/"},"msgid":"<20260107091823.68974-1-jniethe@nvidia.com>","date":"2026-01-07T09:18:12","name":"[v2,00/11] Remove device private pages from physical address space","submitter":{"id":92354,"url":"http://patchwork.ozlabs.org/api/1.1/people/92354/?format=json","name":"Jordan Niethe","email":"jniethe@nvidia.com"},"mbox":"http://patchwork.ozlabs.org/project/linuxppc-dev/cover/20260107091823.68974-1-jniethe@nvidia.com/mbox/","series":[{"id":487451,"url":"http://patchwork.ozlabs.org/api/1.1/series/487451/?format=json","web_url":"http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=487451","date":"2026-01-07T09:18:12","name":"Remove device private pages from physical address space","version":2,"mbox":"http://patchwork.ozlabs.org/series/487451/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/2180668/comments/","headers":{"Return-Path":"\n <linuxppc-dev+bounces-15364-incoming=patchwork.ozlabs.org@lists.ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=jzsFeph9;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=2404:9400:21b9:f100::1; helo=lists.ozlabs.org;\n envelope-from=linuxppc-dev+bounces-15364-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)","lists.ozlabs.org;\n arc=pass smtp.remote-ip=52.101.56.71 arc.chain=microsoft.com","lists.ozlabs.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com","lists.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=jzsFeph9;\n\tdkim-atps=neutral","lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nvidia.com\n (client-ip=52.101.56.71; helo=bn1pr04cu002.outbound.protection.outlook.com;\n envelope-from=jniethe@nvidia.com; receiver=lists.ozlabs.org)","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=nvidia.com;"],"Received":["from lists.ozlabs.org (lists.ozlabs.org\n [IPv6:2404:9400:21b9:f100::1])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dmMtF6Z8Nz1xpR\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 07 Jan 2026 20:19:16 +1100 (AEDT)","from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4dmMtD0ypcz2yFh;\n\tWed, 07 Jan 2026 20:19:16 +1100 (AEDT)","from BN1PR04CU002.outbound.protection.outlook.com\n (mail-eastus2azon11010071.outbound.protection.outlook.com [52.101.56.71])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange secp256r1 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 4dmMtB2xMgz2xHP\n\tfor <linuxppc-dev@lists.ozlabs.org>; Wed, 07 Jan 2026 20:19:13 +1100 (AEDT)","from DM4PR12MB9072.namprd12.prod.outlook.com (2603:10b6:8:be::6) by\n MN2PR12MB4335.namprd12.prod.outlook.com (2603:10b6:208:1d4::13) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.2; Wed, 7 Jan\n 2026 09:18:32 +0000","from DM4PR12MB9072.namprd12.prod.outlook.com\n ([fe80::9e49:782:8e98:1ff1]) by DM4PR12MB9072.namprd12.prod.outlook.com\n ([fe80::9e49:782:8e98:1ff1%5]) with mapi id 15.20.9499.002; Wed, 7 Jan 2026\n 09:18:31 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1767777555;\n\tcv=pass;\n b=hmLmXYX+72OldF3a3IRzwCR0/SWGW5CdQsTvIbIT9P+c4NP50d1UhUFssat9HIJ7v7BCkEMUQdwvtP+WNFqoMmQC9DBst0i7DUJ94jYui2XfnoJDMZF9Or+fXBvSFpEa/R7i2yPZkSsoITJBdL5xg5MOhrcUwTllXMi6FuNREq5+IJH8zn4+aRcV9wNlhtY38vl7sv9aydL5fRXQP/GqWJGdd1ib3qRnZt7tuyo0kUO2jeSwsJXX2E4tGbhW8BcToMoBh875g7ePXIYf/eoRam183zk+c5CokRdrOvvpVDquee6BbpViwFeRq9zN3GDZtow/fxB4/KToun5PeznVNQ==","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=lHW/8AtMZ1yOYX6oWVnINVvU+SoXZQE4Df2hfV6Mdp62mixEUtgKebKDCkQ1O5eNZfI+ao+4oMHAMfHIItvS0ZikPYhKZb5UQp4vm+dfFKeuUCJkmMmlsuzvIHeGGgIzoDLM9Q3rdoDAmaJAN22DgqSI+u0pxMffxk1RfzhsjC9Khk/rpvRL3qUsXt1pua+eUoJR3rPRBL3ODTj21nLuAsfM8kjAyNmO3gEVqsOsY8fDTi6Fc/RHOZ3YcDP9hfBYizU+Peuivo7eNWZHmrydWicNe+zqSuMzo0QDELq2Ouo76C9oF1bY5FSx+z5aTG5jSfmgq02MfPykvsqQkJsntA=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1767777555; c=relaxed/relaxed;\n\tbh=LNizLYsMyYyYs8Qx7xu/ZxcKN5P0YsoACEl2Zbu3vXI=;\n\th=From:To:Cc:Subject:Date:Message-Id:Content-Type:MIME-Version;\n b=gMvAZzWfh7JtgJn99X/9EfA04R99/Uvgwh/9luGSChYedBslwrPQ7jGzaf/LqtuTYa1KbSp9m2HWQz1FGWKzrrfB50P5CEn5RprOByRg8XN/ZQ15TpAtN4M3KwINXE00rNww9fITzeReqBMOhBaLbjx8v7gqV7Q5k8iELQE9kUZyRQU95VP7dp0YLObkXf03ITfGCsAarZAVq2ManWxjVHAqQqcEXBR+e2IeY6dg4mvCpCFygbG7VmUSjKPLer5IQK60HetW/FKWTrC5VbS/PJ/wBLjyMuQtZrz1x9ty8xTDKb7U6lT9UnruKfxM/oXyQFpidjA29M6EcLQj4SnWpw==","i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=LNizLYsMyYyYs8Qx7xu/ZxcKN5P0YsoACEl2Zbu3vXI=;\n b=CYrcBinczQSH0cgT640spks+pJ9bgc9oNSTfZQtDnz6K5iFRfekjSK6bKnUKw4sTobgRLBpppTixg2ATvG3NF8bJuD2ka+a9D6MwdN06d8J/9Pp1YftQQwRXSnGJpCZlVZElH+DgDDq3C2hQ187BMlU67h8wxr/LG4m74suF1c+RlPjOxV1UN6UgotTdRDdYzFSB3pBrBQvnWORU5aCPWOPNUme4wHxB3Tkl9ycCiWVOCCdSF330ipcU+zkwthxhGELakAMFOI0CIzxgEJyxETskFGHMIuFTb5WgBXdJKdK4NJSrNpYUIQR0bAEIWwyWTYhRirefEGSmgKXWXzOA5A=="],"ARC-Authentication-Results":["i=2; lists.ozlabs.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com;\n dkim=pass (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=jzsFeph9; dkim-atps=neutral;\n spf=pass (client-ip=52.101.56.71;\n helo=bn1pr04cu002.outbound.protection.outlook.com;\n envelope-from=jniethe@nvidia.com;\n receiver=lists.ozlabs.org) smtp.mailfrom=nvidia.com","i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;\n dkim=pass header.d=nvidia.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=LNizLYsMyYyYs8Qx7xu/ZxcKN5P0YsoACEl2Zbu3vXI=;\n b=jzsFeph9NTamQhDtUAmrZO4/CJkNiQJy5igmep6eqcRH+p+2e39LaRAbK4ZD25CCBZ8idLHez7XKcrG1rBs5ufbV/2J6eEXFXues84vxWDglDEBwihkJ/NHhC5/zA4/anJ5uFfZAFbtczMsiTDITdNfBuHeursFHyCqkNWQmkFmpuhA2HIl3PADlEnFniDFxJhTUtvpjkwaMPD1jFu2pNFzVCwEAd51BtzHnvum8Ao8uU1VsNDmskuUVxMa7kO2EAowv3+votEXQVXPU7/y2cQAMvBP/NPFZM7XPsCIRGOgvXIKE9pdMksNLa9+pZhVUhlFxpNVzlH2M0555jXsANg==","From":"Jordan Niethe <jniethe@nvidia.com>","To":"linux-mm@kvack.org","Cc":"balbirs@nvidia.com,\n\tmatthew.brost@intel.com,\n\takpm@linux-foundation.org,\n\tlinux-kernel@vger.kernel.org,\n\tdri-devel@lists.freedesktop.org,\n\tdavid@redhat.com,\n\tziy@nvidia.com,\n\tapopple@nvidia.com,\n\tlorenzo.stoakes@oracle.com,\n\tlyude@redhat.com,\n\tdakr@kernel.org,\n\tairlied@gmail.com,\n\tsimona@ffwll.ch,\n\trcampbell@nvidia.com,\n\tmpenttil@redhat.com,\n\tjgg@nvidia.com,\n\twilly@infradead.org,\n\tlinuxppc-dev@lists.ozlabs.org,\n\tintel-xe@lists.freedesktop.org,\n\tjgg@ziepe.ca,\n\tFelix.Kuehling@amd.com","Subject":"[PATCH v2 00/11] Remove device private pages from physical address\n space ","Date":"Wed,  7 Jan 2026 20:18:12 +1100","Message-Id":"<20260107091823.68974-1-jniethe@nvidia.com>","X-Mailer":"git-send-email 2.34.1","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-ClientProxiedBy":"SJ0PR03CA0373.namprd03.prod.outlook.com\n (2603:10b6:a03:3a1::18) To DM4PR12MB9072.namprd12.prod.outlook.com\n (2603:10b6:8:be::6)","X-Mailing-List":"linuxppc-dev@lists.ozlabs.org","List-Id":"<linuxppc-dev.lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev+help@lists.ozlabs.org>","List-Owner":"<mailto:linuxppc-dev+owner@lists.ozlabs.org>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Archive":"<https://lore.kernel.org/linuxppc-dev/>,\n  <https://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Subscribe":"<mailto:linuxppc-dev+subscribe@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-digest@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-nomail@lists.ozlabs.org>","List-Unsubscribe":"<mailto:linuxppc-dev+unsubscribe@lists.ozlabs.org>","Precedence":"list","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"DM4PR12MB9072:EE_|MN2PR12MB4335:EE_","X-MS-Office365-Filtering-Correlation-Id":"6d012cb4-ef2f-44d1-2c58-08de4dcdb9e9","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":"\n LCo95jmciyJYfj0jfbtfZOFCARFsOgMwiSIIWPT5QZ0sH2RgveWFH+CKOFqntO5j49KpRVAnKLwTIM+/l/Br7pDWuQu64iQTkMgtTEtwtrLhoYD9TFOZ/lDof5tUhfM4dtIRT56umKa6qtDa+HxA1Sv0RJGO/bo/41nWc6nCsnmuiPNZl/N4JuePH7QAxNVlE3eY/PRjRKBNSPqhspjgVEYmasdg/lR/Cw4FnE3QOFscEwRCMyjvvGaaoy7pVK5Hp76eQ9leaxNUvkdiE237fsNZHdPiZLPJpYUuUhsthqQd/4G+e5HFjQ97U9j7KrIrJ5yvJWu/E745BWWb0lezPEnvOfnUkmg1+oKa4PzPDQo8M3+OFa2x7yVGVfpa8CYSJos6Ce60aGUA0LklVisUGYdOkfyqrz3sEDMplMM+ltiEWLvIfY6Oe+CG9ZGiwIEzGcXHVuBtPy3HdkMQXIkgq/rfzGH0RXotuq8B5Pu5DjRiMFwuuhrazctbcI1htYtHZlrym+BFloYxTpE8qZtmPHCYGuZhZWbO0eM7S80cqGGWlMEPDFDEi8EGnrPuiN8hek8B65APNqX9rozpCS+KzDcb6V+DWoFRTChUjBngjB9+8GkKrVpS1YSIFYMlllRNmQjrHqjpxg5icxW7AhskrpCssTEvuU3fV+tGFXet2DmgvmqP4dNlREkm22qt7tdxWdUOb7bb8oWeAQwT/Rvr82jKB3LBMGl6F3Lq6yCK8/p019diEObKurvOMz7g4q3gEwWKa71rs3TCB/hAnBftr87a+eJxP8O1WvOT5A1IDVmdnSFczC/5B92Aj7l09UrOvyTVz3uqfhCTHx3CN+AJLFTPX3WaAEEHe1E1M+B/RzZz3nCh5uCofhpuCwUZDCQkbbKUAv7ufZXuJvYSpCrEmBDPzG8TRCb6meAnev9m8FVtA3PI1WG6IyULSgZfiBfR2Kaq07ktMlaAaGF/gsW2kX3vwxMEnXvO91DOWKsdB/eKWa+R7QLd7V9FX3uC4yQjp7BdBGmUNpofPS6Lu1K9HgmC67w3FP6Cu6mQFb+9zDkWh9xWBMlkDCyQHP5ptrogFYkTJSDQm1Q/OMUsZ7FHfJop+eGjFd7hma0RwvZ+k680FXOg2CcZU8d1uB85ypkGWNSdHu200dfka/+IgXZQH3/JxED8DEnWyf9nUjiHu0bnGQoUr36bndLb0kMz9QLwODhct0dtPd4vIChh3q+rc+srihZpB+tC1t0yA4s0+NcspIbzHPwTD4Pgx7MWhbldX5xrM8suHaNdaMnKxj/ppQ7DUPiRElIVb8UfI/GlRnzx8khXodlPmwhNHiY1SAyks/TdE8qp4xFl+o8HODGxijY8QnCKMaRkjokfobOq+7ne0HEPe8S/x06EsjLLMzlCJJr1lGM9wh8eVNkN+qTpQ+gyv3zfjqbrlJX8fKGLzLpZWb+laz0aGrGn6T4qWY302k2h3MltEjBAAq9Z/vhJQg==","X-Forefront-Antispam-Report":"\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB9072.namprd12.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":"\n vr3H5vJHU782hzKDQ6nsp7FqMjU3OGAb3BBvv2ghmiC0RuPIfoNy6bhm4ljheQbei+EUPvnT15blvvChU14KJ66m0uUVsraM34reHnyThiaWCTG8125p1ej2UzJxJzVt7atPleYVmw2pmR+vSCcDKDGLo0xU1mRfSCbaFvtpB1uQD1t7cm65jpg/c9YE/uGg4teVXr0yOy+D4kLa/DktnY0OndljFeSSpC1IAx1YpQ4XmCNbhWsaIPIKqTBIQtT2uUFwth5TP1tF45NODmHFWI/o5z3ZOrAODc0v03R/1nEQc60oUy1sALMpAzQgcxOyY7lJmvxDe2+KuEnzfDE1QNQCPXArwTbUy/ySCo/qz7bZsWjHoK6oJ88Do0r4MJa8QUIZVJfwIJsqFuJw8bfXsE+QttHplnTIRhZ1gBT7+a2X9gAxpQx/fIxHp/UiDg6wOknS7cEWc9CG3zYelA8bZI1XU5mUFeEWwkilVT7HuA8SxTctGjqQYslJavvnUlGF3uEkTUcdtQoZWOICPoMjE+OlmYopcvCJqosMngS2xMsopFyhs5wy5OuVdpsqVRoWBWwnWdEz2mDomcrzpltoC9cIPle4J1eBPe6j00K5wxYBisLUjJhtsYUGpoM1FEOTZxW5+FP0S3aqQ4kb/j4q8c0QolIOKkZZKvjq9PwqOIr39g9T3mUKLsR5piQbzXWro27qRIVYd9EG2V9+GjuM0gmfjguYyU+Y03WLokUpoFA83Vy3i3RvZmfmtsbo9ruFebkhk9m4CVfrlIXodlxoeuM4l1UhLbbd4552kWNDKayD6fodHO9ZobI76JQaQb/i35FqmlD7YJ5m/hqXift62fsW+x8qyMJ0XbOiliZNx8Dgwrz1lZ7VrtpeCeikO+AUojqfw9y7Gp5i2CW/wEM7p9SixqG66MKdm/6nTdPB8N+GKSc3mt2oE5tny1yXedca1SGDpCp5YNl6YB08s5IRZuBfKNEoWBMvkTOcGhmIUmmfnLXJFbZ7cw7ValPd4lb85EIMPhlxnKf6A5p1GO436G4gp3gqYO/3MNAB4wjXPcEZhg4vta85JCwYBUtw7SP7otOk1RI8kpit5ZNKqmHMZcJEZIat45ZOdO/IKsfSgnrsTgU0D5ED25ntTDOkM/LQRUY/NyjKq2Pgh7klb1j4PUJq6f2ustFm/SpHNHe56xKB+4vjrMngosamJywHi7hR1sdQe7PZOcKSumnX7LrqkRQob6u61Xr3TaH5p7aZ84rb76LhpB/0SJSQ4XZUwzpbJDQCgwx7dUsTLySTn8uXxPDSMOP5MabW/CRNJ26t8otmMDRnJDPm8iFv9gHf4XKxtiNWuTpvohLcSr3Ez9pcSTHFXczxxT9M+8SOMVprXNjrbDFwKxN8TXN2NfT+SIB6qeFalzJbSmM9H39pTcfvgSS0vMwxPrOUftJJ8X6N1Gc0sDUYDUDaWZ/BXMxmN/PHGKDaNchvYEuxOEvtmvYTTiU1G/sl3GHDQcAoWN6k3ZLmaURHStXDIYpYB6qIL57dBNtRnv/y2/b7ACDtWBRdJtEbT3GhUYnbehQYFJqJjF2sBksfVa/QGvEbu67AHD8gFsdibaGTmytmQQyjKE+hxIn7B9GWfnhxViRpWfaS7dIlctYLWLEyY5IxPNP4OKJ2xa8kcw3riAy0AEbzx0ciJqwMEojROhpdb4zMR77x71ruzZN/VYuhY37y1qZnnNnJjO6PN/XoaYxrt5qvKnU7hQ==","X-OriginatorOrg":"Nvidia.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 6d012cb4-ef2f-44d1-2c58-08de4dcdb9e9","X-MS-Exchange-CrossTenant-AuthSource":"DM4PR12MB9072.namprd12.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"07 Jan 2026 09:18:31.7871\n (UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"43083d15-7273-40c1-b7db-39efd9ccc17a","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"\n WPNNQiGktcohng+0T5lZepDvmoQ1EdT6M1Y8Tlk+DetoNDG//nXuSPq4+OfSdW8WHvyCv+DlTDhOV+fCoFdnnA==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"MN2PR12MB4335","X-Spam-Status":"No, score=-0.2 required=3.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,\n\tRCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS\n\tautolearn=disabled version=4.0.1 OzLabs 8","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org"},"content":"Today, when creating these device private struct pages, the first step\nis to use request_free_mem_region() to get a range of physical address\nspace large enough to represent the devices memory. This allocated\nphysical address range is then remapped as device private memory using\nmemremap_pages.\n\nNeeding allocation of physical address space has some problems:\n\n  1) There may be insufficient physical address space to represent the\n     device memory. KASLR reducing the physical address space and VM\n     configurations with limited physical address space increase the\n     likelihood of hitting this especially as device memory increases. This\n     has been observed to prevent device private from being initialized.  \n\n  2) Attempting to add the device private pages to the linear map at\n     addresses beyond the actual physical memory causes issues on\n     architectures like aarch64  - meaning the feature does not work there [0].\n\nThis series changes device private memory so that it does not require\nallocation of physical address space and these problems are avoided.\nInstead of using the physical address space, we introduce a \"device\nprivate address space\" and allocate from there.\n\nA consequence of placing the device private pages outside of the\nphysical address space is that they no longer have a PFN. However, it is\nstill necessary to be able to look up a corresponding device private\npage from a device private PTE entry, which means that we still require\nsome way to index into this device private address space. Instead of a\nPFN, device private pages use an offset into this device private address\nspace to look up device private struct pages.\n\nThe problem that then needs to be addressed is how to avoid confusing\nthese device private offsets with PFNs. It is the inherent limited usage\nof the device private pages themselves which make this possible. A\ndevice private page is only used for userspace mappings, we do not need\nto be concerned with them being used within the mm more broadly. This\nmeans that the only way that the core kernel looks up these pages is via\nthe page table, where their PTE already indicates if they refer to a\ndevice private page via their swap type, e.g.  SWP_DEVICE_WRITE. We can\nuse this information to determine if the PTE contains a PFN which should\nbe looked up in the page map, or a device private offset which should be\nlooked up elsewhere.\n\nThis applies when we are creating PTE entries for device private pages -\nbecause they have their own type there are already must be handled\nseparately, so it is a small step to convert them to a device private\nPFN now too.\n\nThe first part of the series updates callers where device private\noffsets might now be encountered to track this extra state.\n\nThe last patch contains the bulk of the work where we change how we\nconvert between device private pages to device private offsets and then\nuse a new interface for allocating device private pages without the need\nfor reserving physical address space.\n\nBy removing the device private pages from the physical address space,\nthis series also opens up the possibility to moving away from tracking\ndevice private memory using struct pages in the future. This is\ndesirable as on systems with large amounts of memory these device\nprivate struct pages use a signifiant amount of memory and take a\nsignificant amount of time to initialize.\n\n*** Changes in v2 ***\n\nThe most significant change in v2 is addressing code paths that are\ncommon between MEMORY_DEVICE_PRIVATE and MEMORY_DEVICE_COHERENT devices.\n\nThis had been overlooked in previous revisions.\n\nTo do this we introduce a migrate_pfn_from_page() helper which will call\ndevice_private_offset_to_page() and set the MIGRATE_PFN_DEVICE_PRIVATE\nflag if required.\n\nIn places where we could have a device private offset\n(MEMORY_DEVICE_PRIVATE) or a pfn (MEMORY_DEVICE_COHERENT) we update to\nuse an mpfn to disambiguate.  This includes some users in the drivers\nand migrate_device_{pfns,range}().\n\nSeeking opinions on using the mpfns like this or if a new type would be\npreferred.\n\n  - mm/migrate_device: Introduce migrate_pfn_from_page() helper\n    - New to series\n\n  - drm/amdkfd: Use migrate pfns internally\n    - New to series\n\n  - mm/migrate_device: Make migrate_device_{pfns,range}() take mpfns\n    - New to series\n\n  - mm/migrate_device: Add migrate PFN flag to track device private pages\n    - Update for migrate_pfn_from_page()\n    - Rename to MIGRATE_PFN_DEVICE_PRIVATE\n    - drm/amd: Check adev->gmc.xgmi.connected_to_cpu\n    - lib/test_hmm.c: Check chunk->pagemap.type == MEMORY_DEVICE_PRIVATE\n\n  - mm: Add helpers to create migration entries from struct pages\n    - Add a flags param\n\n  - mm: Add a new swap type for migration entries of device private pages\n    - Add softleaf_is_migration_device_private_read()\n\n  - mm: Add helpers to create device private entries from struct pages\n    - Add a flags param\n\n  - mm: Remove device private pages from the physical address space\n    - Make sure last member of struct dev_pagemap remains DECLARE_FLEX_ARRAY(struct range, ranges);\n\nTesting:\n- selftests/mm/hmm-tests on an amd64 VM\n\n* NOTE: I will need help in testing the driver changes *\n\nRevisions:\n- RFC: https://lore.kernel.org/all/20251128044146.80050-1-jniethe@nvidia.com/\n- v1: https://lore.kernel.org/all/20251231043154.42931-1-jniethe@nvidia.com/\n\n[0] https://lore.kernel.org/lkml/CAMj1kXFZ=4hLL1w6iCV5O5uVoVLHAJbc0rr40j24ObenAjXe9w@mail.gmail.com/\n\nJordan Niethe (11):\n  mm/migrate_device: Introduce migrate_pfn_from_page() helper\n  drm/amdkfd: Use migrate pfns internally\n  mm/migrate_device: Make migrate_device_{pfns,range}() take mpfns\n  mm/migrate_device: Add migrate PFN flag to track device private pages\n  mm/page_vma_mapped: Add flags to page_vma_mapped_walk::pfn to track\n    device private pages\n  mm: Add helpers to create migration entries from struct pages\n  mm: Add a new swap type for migration entries of device private pages\n  mm: Add helpers to create device private entries from struct pages\n  mm/util: Add flag to track device private pages in page snapshots\n  mm/hmm: Add flag to track device private pages\n  mm: Remove device private pages from the physical address space\n\n Documentation/mm/hmm.rst                 |  11 +-\n arch/powerpc/kvm/book3s_hv_uvmem.c       |  43 ++---\n drivers/gpu/drm/amd/amdkfd/kfd_migrate.c |  45 +++---\n drivers/gpu/drm/amd/amdkfd/kfd_migrate.h |   2 +-\n drivers/gpu/drm/drm_pagemap.c            |  11 +-\n drivers/gpu/drm/nouveau/nouveau_dmem.c   |  45 ++----\n drivers/gpu/drm/xe/xe_svm.c              |  37 ++---\n fs/proc/page.c                           |   6 +-\n include/drm/drm_pagemap.h                |   8 +-\n include/linux/hmm.h                      |   7 +-\n include/linux/leafops.h                  | 116 ++++++++++++--\n include/linux/memremap.h                 |  64 +++++++-\n include/linux/migrate.h                  |  23 ++-\n include/linux/mm.h                       |   9 +-\n include/linux/rmap.h                     |  33 +++-\n include/linux/swap.h                     |   8 +-\n include/linux/swapops.h                  | 136 ++++++++++++++++\n lib/test_hmm.c                           |  86 ++++++----\n mm/debug.c                               |   9 +-\n mm/hmm.c                                 |   5 +-\n mm/huge_memory.c                         |  43 ++---\n mm/hugetlb.c                             |  15 +-\n mm/memory.c                              |   5 +-\n mm/memremap.c                            | 193 ++++++++++++++++++-----\n mm/migrate.c                             |   6 +-\n mm/migrate_device.c                      |  76 +++++----\n mm/mm_init.c                             |   8 +-\n mm/mprotect.c                            |  10 +-\n mm/page_vma_mapped.c                     |  32 +++-\n mm/rmap.c                                |  59 ++++---\n mm/util.c                                |   8 +-\n mm/vmscan.c                              |   2 +-\n 32 files changed, 822 insertions(+), 339 deletions(-)\n\n\nbase-commit: f8f9c1f4d0c7a64600e2ca312dec824a0bc2f1da"}