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 36D6FC0218F for ; Fri, 31 Jan 2025 14:52:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5BDBA6B0083; Fri, 31 Jan 2025 09:52:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 563386B0085; Fri, 31 Jan 2025 09:52:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3B5B06B0088; Fri, 31 Jan 2025 09:52:45 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 1E8B66B0083 for ; Fri, 31 Jan 2025 09:52:45 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id BF453476B9 for ; Fri, 31 Jan 2025 14:52:44 +0000 (UTC) X-FDA: 83068038648.04.F88C575 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2050.outbound.protection.outlook.com [40.107.237.50]) by imf18.hostedemail.com (Postfix) with ESMTP id E1A311C0004 for ; Fri, 31 Jan 2025 14:52:41 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=mMpiGLE9; dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf18.hostedemail.com: domain of jgg@nvidia.com designates 40.107.237.50 as permitted sender) smtp.mailfrom=jgg@nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1738335162; a=rsa-sha256; cv=pass; b=ddt1R5ODjW0BBIwnwhhBOUM6FmIO7xYX/jz8biozPsGZXQYLO0XoXfAaEnHPbyaLyj8kM2 7LElkpnciDp7fYmwV0SbpvLlL1jT8NnMcU60ihBUuFckIOVNR0MNuMZHnniWudXkNY8n9H KSvVGN+Cx6napNMy8nfVFLEl5sqeIcg= ARC-Authentication-Results: i=2; imf18.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=mMpiGLE9; dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf18.hostedemail.com: domain of jgg@nvidia.com designates 40.107.237.50 as permitted sender) smtp.mailfrom=jgg@nvidia.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=1738335162; 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=k4NA7VlTDh5N5XqbreSQ1OU8HyMVR7saXwDG+7EAo7Y=; b=Fm/t2Yf3GRzKz94QXP4l5pr9OKbUdr/Q2KdQzCoZO8ftQfkAFF6XA45NqJPOTui0Gqc22b 3JeLOM6CRiCbRSNiQ8xwerIbO3hS1Fk9pCEtn5ceCITDIwOzJ0/6+0/RyC31MLYRWo+qhr flA5HcciH2zZ25y+w/Owt0jGWUkJqAY= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kXmRSHitRtJ7+cdU+dQD5ZNh5YP76oJTYcUW0gihzg2CF148ddEC6QAT3XnQIdxGQu1dUPes5rim1Mt8NDICJwNNgxFgPSlHh9Oj8wvAXyz4+jjgJ/B5gdaNcXHut/dl41gjxNpJCekeVnLEpuuxmxqo1+d1YmAhD8iapCsc7NIFgrq1vHi79pYvuerBR1egT0Omf64nbEmlhZQdXRvNnhLEuRgRFcFli9CUvh2AhGAtsFVIxKQnRgQGZ7Ys1gU/Kcd6L6UC2CnAKe02PU2KKFXbSNBYCH5qd+ASb+BJpgMrGQiVIV9moMgF1M5L06IxrYBEgGERLgWQPUDmYtwvUg== 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=k4NA7VlTDh5N5XqbreSQ1OU8HyMVR7saXwDG+7EAo7Y=; b=ShRYZ74Y3QjPodADDNs252O2WwgbL0XjfCXA09QDOpWyHIA8yOSvK2RDrFUcCA1ZslrEWrkJp07E8sfACYVVJP47gOeZIgHZDKcpYdgtii8hmsKXqRvSQOkVfYmtH1SsGsrrKS1IJHWqWhEWqWEtVNrBjuADzyuKxaBDkzuKAvtVpZx5M5DJIZ/NZ/BSzU1QIdvRuO9iuEX6YuA1vEHlqZmmpAgX5UQNVVQdEg7y6uesONJRqHDb2dhJ+tQ83Y8GEJkshlbsbqcVa6PkKCB0VXJkBrz8X0LoT6hH7tp9L/wJxBH25zmk85lHquflFZkKoXPy/B18vjTGDtrcphhNEA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=k4NA7VlTDh5N5XqbreSQ1OU8HyMVR7saXwDG+7EAo7Y=; b=mMpiGLE9cLNovY8BkKRoFAgll7n6J/Arszje3Vf/LnWzMzRL6q2SLtIZOt6ZjAjBe0IEsn/Zrt6EG/2dry/4vG3d0dFDuPdTi8nBKQy8WY8kbErSM2OKY79ysBP9sSCk0B2WcYnB+8gSWcIbqkzHRTlJfJ8VvhXKSW7NeVjU1oD9/KDsJ1k/MItUAMJ0ooOu+DYqEGdjeVZvurgP+kAfWI3Ol86EUoxCLHu3/oKDeJLYVWFoOwyD2bpJr+XT8b7HwHbJJTdOf+8cm6yz7jLDBYbGrZVSVT+1/IeWtSL8/XibFdNWm375quM++WNYARfxpmXc6EpwOLbeWT7KuHrd7w== Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13) by PH0PR12MB8799.namprd12.prod.outlook.com (2603:10b6:510:28e::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.21; Fri, 31 Jan 2025 14:52:38 +0000 Received: from CH3PR12MB8659.namprd12.prod.outlook.com ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com ([fe80::6eb6:7d37:7b4b:1732%6]) with mapi id 15.20.8398.018; Fri, 31 Jan 2025 14:52:38 +0000 Date: Fri, 31 Jan 2025 10:52:37 -0400 From: Jason Gunthorpe To: Alistair Popple Cc: linux-mm@kvack.org, lsf-pc@lists.linux-foundation.org, david@redhat.com, willy@infradead.org, ziy@nvidia.com, jhubbard@nvidia.com, balbirs@nvidia.com Subject: Re: [LSF/MM/BPF TOPIC] The future of ZONE_DEVICE pages Message-ID: <20250131145237.GQ5556@nvidia.com> References: Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: BN0PR08CA0001.namprd08.prod.outlook.com (2603:10b6:408:142::6) To CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|PH0PR12MB8799:EE_ X-MS-Office365-Filtering-Correlation-Id: 29e1f80c-7c1c-4ef5-6744-08dd4206e7b2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?zMPuPRayu71guPH9WrIvYRvHHxwHPf/phYTM02YRRmWJmjqcUzU1zWyU5TDm?= =?us-ascii?Q?+XiHlqaLLINf0cqhMK4yCGwy6sla2HQ8MQgeWpGl6TPbML0x8kqEfDqVcaCd?= =?us-ascii?Q?gTaGsmCsBRsaec5KseEYDu9ODs5ljOudrpa6YQR6gkAs1pnLCeFy2YSgzd/B?= =?us-ascii?Q?Sl+liQIDDufo6eru8M+uKCI4m/41qdyxiuRPl0aGXp9/nU4OwxsL/MWRGi3U?= =?us-ascii?Q?NYyXOUECD0P1TGfQkHX39XktvTF6mKRI0723VB66KM0ybNfuq65RQlOCF7QI?= =?us-ascii?Q?aicbwqQvSoGTCJgu3TkyFcG4mqzzEiefij+wyHxR5WVZCZDvkkrN/0N2L7gD?= =?us-ascii?Q?o49K3eNI+lILjN6O03oDoGQaUAa7E7z68pMf5iRzY+KNjO4gXGeugY0JUNP3?= =?us-ascii?Q?mn0uRa2loP/lsXjLNjm5q2H9AnvcT0jNSv0OQu1lc4iHS39qs+TMXz7YiS2m?= =?us-ascii?Q?HYYCmxQHTh/iLYhdDgV+qJe25HRs7jH+zS0yLpRyncyg1klzFP5jaDV1agok?= =?us-ascii?Q?Nf8UamVoyjNLQZSJ3SdDE6OMbdEH2pQLt8Uw+mpTYuZ/tdnv1ebHY6ufkrTG?= =?us-ascii?Q?Wzat3aNbhlgqmOdAkvD6XaExm7Difl6OJTlVn3usKx76n8L4BRiWmsr3nrSY?= =?us-ascii?Q?wIuN2aX39rVkmPkeRceSj6mdJyJISCDUUTlKAYCCFP5sibbKHCBGuHCoU7jC?= =?us-ascii?Q?DCUoAsHn7Q8xnBMBAIQVkSnYx+0hZ/M3LurJMvKEor3wp/sLIaz60JbWXwGJ?= =?us-ascii?Q?lQsM4RRY+QYeIvckBfxujYUFs42LZpf24+KTVTQIWon6PtAkoOC1gEGzOeFH?= =?us-ascii?Q?HD2wzLjs/SxjI1kUJtlsKGauUzZh3avx2/HOxa94sX/9cPxyGyqdt4LC+I6Q?= =?us-ascii?Q?1soRjv3pYnAfyfr8VloNDpOaRW531F/z1krElrDCjKQfKXsMiR3XK11rXKbU?= =?us-ascii?Q?YJ+Aqdb81rBmFD4bX3xBjST/HRjZS5B+VL9U1j04apFP/Ciz6g3nPlhaOljp?= =?us-ascii?Q?GgF84LGZrTQCN8aOnlom9u7BSmpMXktofA1CIlrkqim9PKFFbsLDGpkuP2p6?= =?us-ascii?Q?Fclmx6XbQTKdq911P7zjGS/Zn6A3bMlVq1StUhimaReYlVu2y4RAkZ5eUxwq?= =?us-ascii?Q?tY7IdMPb5EeF/ZwF7mj7ADykTneR33CIpzy3M+MoojE4dskt2Fd2cW3b+q/K?= =?us-ascii?Q?fqPce18T43zlyv79GHLCN//UntGgg15EBZN5W1cCNvDYDgcJw8XvgjSNjsRH?= =?us-ascii?Q?VHkUFoxmXVXT/VDbKECbPVZ/La4eUw7ikCZIDY7dzqcgbWFT+YPfuhD9D0XS?= =?us-ascii?Q?VHt7cI7COE1ikXCFQWyC0+aABIqVdXlIWKx2qSgNyBkqJ6AMpJ3YRw4yxZ+R?= =?us-ascii?Q?+5mtPJEw68G7ll+syWSIgFfjl1xN?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?bJc2xmyt+KgX5ajElwYMXiR+FkQN8LSf2e8GEH/jFbQ7IND0zyJJsim0ZE+2?= =?us-ascii?Q?HcFTU8gLzHly1fyX18BofwgCiPyv9wq4aC1vMHa+h0k21lyt7X/f06BmlTfx?= =?us-ascii?Q?Ve44MWyVLmwMNC4Yal0wpZKLdDx44bsleqrvyqXviFW85viE9GloXo50jdfv?= =?us-ascii?Q?FJhSeOJ3h8QzSm08Bl+OGj3CFvm7imVXWkSJT3++ZFMCYTeZA5m1wH5ooym/?= =?us-ascii?Q?kOuJ1vxrL3PkGtWRbNhoOUjd51GjzBsvGPQFEY6iHhLc91e6HTtg32Bl8MHX?= =?us-ascii?Q?kAAcRx5FKABn2UA9gdwPY8MUfnwZnNxTqnNKKnNMnXIZgOMc0DgsuVc6sBzd?= =?us-ascii?Q?TbpwHEbzxBLoDIveney/tjVISmkyNjSZ6vjmEEKouiHPQ8reUgI4ilwxiWsy?= =?us-ascii?Q?MnLFsJ7fyjX41JUWxQHRCU5YTZcnMQ7nq6PHDOAKhEmjOEO53WstOU6zKsMp?= =?us-ascii?Q?Jas7nf5xHul6JOsDyz6cKUscjiX1TRQfOBFZS5YP4Bxl+mAnMc9pIFqEPq22?= =?us-ascii?Q?ZN96JR0Ib5cviV4kd9+WOPiGBK+UdRfQAdwR7ptsH7194nVlRNeLUPKM/HkJ?= =?us-ascii?Q?c3ZHhbA+EYneNDzVwHdefuwpdeEqGRWqZOasUtHx+y1mzbVF93IhF3AyjNxg?= =?us-ascii?Q?B39EzFAPYJSUBQ8XJysXaDStIxjSJGAMyfJpXEOA/aWnROj/0lIrKfvZUwWj?= =?us-ascii?Q?gFruwNXH9OPdtPi2jrdmec/xpHy86zmokbMyCi5Ax8bDNaO8BpraAAIcl6AW?= =?us-ascii?Q?s8sdzDWu9APjgUr8Ohz9mQIBY9g9hEYuqqJ6LYH2M8+/CqBuqVr3aFgLhRhx?= =?us-ascii?Q?21jovH2Cl2QJtOyBvxin5I0FBqz9uPe+WZILoIxyv2FmPhsK+jKFL/bYhAmZ?= =?us-ascii?Q?fiulyTpv1YTFKsffxLaQWW8EltF4ZSi8+NKAjWhDmgL5xcel/fUiP8y12LUI?= =?us-ascii?Q?78FgdrZi9GcCd+9pKIVysEi7prirj6LZFxlvdPlP6dyUUy6mZZ8e30oSHu4f?= =?us-ascii?Q?s52DfpGuuOFqPUM74cZSQhBkv8egprD4UnelphIW6fwKZ1asl7wVc3Qk2AOd?= =?us-ascii?Q?XCgkGdjm2i3CX8NaA08AmO1A5k/1fn90aARUCZbJjpS/ZjFhcOJ0E/RgOekR?= =?us-ascii?Q?NHl0rFCBIX87Z9ZAdARKGefB4mF7QbHUJxLLBUgd/lCTYVEmrlDZqe8Ay16p?= =?us-ascii?Q?eL8xbEi1NR1cJXhuMadWHXM3k4Zi/W8dybNzafJbMZSjBD+FlLIRu6edjKKY?= =?us-ascii?Q?5aRDHzV7+/o3UiHZsSlq4tyI8boy11NmWfQIuDiOoINhZXzaf4gx0g0aF1EJ?= =?us-ascii?Q?PCgKp6O+jYQILjNbHwbqxEJkq2FzIP0lr8BZyEC4/7Q2TvefFDuAoO8JRa2R?= =?us-ascii?Q?WgRBTMwUdhV4ZzYOCmV3yU6aU2ZXBj1ZrKosh0uSIETwA9yMckxL2YTjUXcW?= =?us-ascii?Q?8Bj9yRS3KW6cwz4xOvOO6/7ldfzmCePHsd8b/3+Y9fEE9ZOHNQJRP/041XZv?= =?us-ascii?Q?+uCUXfjDgmZyJPt4smesNZWn84b13QfCjcoNr5pD6IYIeMPZhtosCVM05uuB?= =?us-ascii?Q?tEX+2kki6XBFp7FQ0J7ls/DV++lydF+5rCCTKvNw?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 29e1f80c-7c1c-4ef5-6744-08dd4206e7b2 X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2025 14:52:38.2494 (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: gt4PZ0upEIoQlUsc7f6CGyFKqP95v/uhTb0IbBjJ6XKaPLPOCxKLGiGxMi2Gb1Mg X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB8799 X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: E1A311C0004 X-Stat-Signature: oufwiry1j3w8ao5q6ce1ut5oahzf7pc1 X-Rspam-User: X-HE-Tag: 1738335161-298965 X-HE-Meta: U2FsdGVkX1+Elynw695bsZQlkEeI80toWNxTmyKCNWPVqCIfg/VmsT8CTlhlMJYWP9aMz5vDjhh3TkIn2WMlZLrwYFS9LZIBqJgGEDX+awyeXXA8klIzKGRIfooEMFA450FVTdAMFnBAsAYyLxqowf0VuG3Spc8VndIw47PNyBnNPH96BvYDsKn8pidiyAYFAnshwV3ZNnfb1mR5nRl+T5aT2jloDCGQVzfxQXKf40HzrKtPpjETThA9rXfynCJcPBpbK31iFg1eOFte2J4z+zeOocFENi7FtyJW/l7YimwNpahQxNXI1N7sFW+r+rrXG/z9yDVM3jQRmCfrE2T3DSQHeFQTSenYqQFpbmk7kjSM2awhFxmt56Ge0YyEwZ/SBlfEk/vMRKhXI7A5N7y241x75nGeEtKynXofkpP27I6fRxcIJM2+WmkMgQw0iX9jhFeoey56skfKfIa7/3tA+tDCDPVIlvoy42oPOfekdkzmPavij0wI8CJAX0OGhqMNhHsgDvH3PI8hoO5hJhWvHS8ikQPsI4iJMee7DcD892Gl6StsCNXnNTVrUDYEewdMGHLpyJ1w/14ZmLrAVVExF/CrhJ7vpfakiSYQzMEq8uyl0ICr2CBEQcY0fTUTAVolfgzyWWKR0Wlc4K3+CRAo0J4HxG/7ZrDr1d/uRHWwukSQVNoL/QPHUILUe2QFcEMAY80YFAKqiEG+SiLUoGFDo5MCsg4cfkleTIt0QF/+M4lspNpqNZL8oG+Ulu/EQX3ggjk+d5G0BXzYqfcnNfAHR3/0wiVfiy3iM+e4Rd7ccMIPiJSjJ3fc3DrGfYdcy142REe79VshphcTpm9SaDFL88UPuTZsDRpjzxjggEJQaUnIZMkotFbu0zdxgepi8ZuFKQFne9opiGLqYFCaD8DLQvCqjueZTFOnEcCNqWvXUyTH1ieY1NJyMbvn6oFD3Fhs6MhDYmBqeEn4irlWaGl hDyQLujT RtM9huwcaBfi1k3MW/Hpd3uFyqj+XIEqCjgjIOfXu1YJyaRuzrhK2QA5G/NocB4tuShEroxeeZ44b6yjBZ9FAuepGJhKHB0MOiXoAcEAgtQN7Tjdio0oUFgCXmvG/oXZkJvp/7Ed7bXPAM4BEYCqUqaBl4ODmcYOhnCKUDFpZfp8SAQm/yCCuuCANA34GaX4aXdbc2zTBtjezsSuMuy56Kzv5qakfXHeabu9TP72xVA7TCixAu7nbeaEZrLYyg0qkOMNEYvFEJSVCbINrSwq1TQOUornArDY31IsWos7njFRL6BwrkF+RhxCQGipPhBnQAbzW6YFqesApEnKgWt6zpwi0eQeTU/foU7BuhC5McfNlzcJFk55TjC4hgsfWziV2IhOBbZrQyc5sYxR2cBOuW4VRf6h/qlMVV/p7diYxtmFlO32zrFEBn7P104JqYFP+0j836g2O/Q9GTJ0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.012371, 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, Jan 31, 2025 at 01:59:09PM +1100, Alistair Popple wrote: > Combining P2PDMA and DEVICE_PRIVATE pages > ========================================= > > Currently device memory that cannot be directly accessed via the CPU can be > represented by DEVICE_PRIVATE pages allowing it to be mapped and treated like > a normal virtual page by userpsace. Many devices also support accessing device > memory directly from the CPU via a PCIe BAR. > > This access requires a P2PDMA page, meaning there are potentially two pages > tracking the same piece of physical memory. This not only seems wasteful but > fraught - for example device drivers need to keep page lifetimes in sync. I > would like to discuss ways of solving this. My general plan for this has been to teach the DMA API how to do P2P without struct page. Leon's topic is the frist step on this journey. https://lore.kernel.org/linux-mm/97f385db-42c9-4c04-8fba-9b1ba8ffc525@nvidia.com/ When we can DMA map P2P memory without struct page then we can talk about what API changes would be needed to take advantage of that. However, merging P2P and DEVICE_PRIVATE seems very tricky to me, you'd have to make the type of page dependent on how it was read out of the PTE - a swap entry is PRIVATE, a normal PTE is P2P. Further, a struct page is necessary if any P2P pages are being placed into VMAs.. Jason