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 F3E0FC02183 for ; Fri, 17 Jan 2025 01:05:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 84E606B0085; Thu, 16 Jan 2025 20:05:25 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7FE716B0088; Thu, 16 Jan 2025 20:05:25 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 650B96B0089; Thu, 16 Jan 2025 20:05:25 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 322566B0085 for ; Thu, 16 Jan 2025 20:05:25 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 87BC712154A for ; Fri, 17 Jan 2025 01:05:24 +0000 (UTC) X-FDA: 83015150568.29.14A9E1F Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2084.outbound.protection.outlook.com [40.107.94.84]) by imf20.hostedemail.com (Postfix) with ESMTP id A0AEC1C0007 for ; Fri, 17 Jan 2025 01:05:21 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=XasCY+YJ; dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf20.hostedemail.com: domain of apopple@nvidia.com designates 40.107.94.84 as permitted sender) smtp.mailfrom=apopple@nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1737075921; a=rsa-sha256; cv=pass; b=YdXH1tw5S2OkQzjZh4lk2g1aJy7CX0ME23nAm34SOQRjkmvHXlntECXXHbwAR+O4SbOEtx xmPxKFyMeLIZIRHWYBa/rIWOyLtHo4XKOLHC9ipdRUhcKrN62Sq0sauvPscCo1FCDKfEt5 guLJb1ejADWwDOTxcQYIA8xkZUSS4+8= ARC-Authentication-Results: i=2; imf20.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=XasCY+YJ; dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf20.hostedemail.com: domain of apopple@nvidia.com designates 40.107.94.84 as permitted sender) smtp.mailfrom=apopple@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=1737075921; 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=LCK7BCW5IdPxxlAn6VgHOLVA8DtcwOpat6zYaS1v/X8=; b=x8//J+FdDzMcdkQno0Cl8Uzxld68ScSVIzSJ8nPImRHtyJiP0wsMgzZ82Ex6yCeIJNHVwv nyurJPYufhWOe8fIKf6LnIcZmn99M3iKP59qL1po10PApE/rwpGLgR/ifIT4n+Dfi+o9Ri TfrIQXDqiETxMIL/zerfKuzCyBjiSBA= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LkoTUfu87XxDak6qWUwxNl1DRIbdKw3BTzgh1v4jx9CcN6cXYdeWBfot6QiZNX5kF68usv2QXCEBje4swneOG8HZLnwTzN5WUimM2f118s25I4bj4GRUJCA+hE8NhGlFzIL85JrIverWqHh3UCfRhmNr9QN8ErwpundNjd3Uu5T7s5jc5ugMWdCcpzPRnKQ1DralxxsZO/TP1JON97Tencwzp8lAP6q1o2mHwInh9CrvVkDYeh/tLgPyMs1hgTzyJt0OeGI247Y8uShh+iTRtjFRkshFNkSh54zVJR50IvJXPTHMMtgWzNQVAextljtiONNa0Dty8wVU74rwyxJL7w== 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=LCK7BCW5IdPxxlAn6VgHOLVA8DtcwOpat6zYaS1v/X8=; b=qa2PiaiOgy/abRjGAqTOHdPHDnioZR/VbXgetriKFgPOqq1xeNcwIVyx3cn3nmLHVx3ch3LUlc5z8mMnH/KAaAL6wvIBSH/LEqFN8iUQWRMJYaO8mx8LwJz4S9FrY5Fl+7zuTLeHX1V1AucAc3h7zk0RS9T/zAVQS0lHnCCHfOKkc8kd5L72tZvlOdVIH7go8InU8k9H/riZshFCU5WHnzfewIXF47gy/Zh/ODYDxBlg1pm3SK+A/GDrHqBT+3Qz8a6hMBowda99hEXp+JEZijecy/tFQDtR23JHEnFMXoqx+UiqXQZStxtGL7KiNfrRLOJ7fsPmpZPGeAoRWuIaOA== 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=LCK7BCW5IdPxxlAn6VgHOLVA8DtcwOpat6zYaS1v/X8=; b=XasCY+YJGMQqnhkLegUA4mH9Vgh+S3V06KzbT12Vx2+5y65viS0ZoYhG6Wx2nxznEA2CbvXpu3pN6ESUbHYfnEWu8hajKwXipjB+XXafqWm95++6UFefOrP+MpFpufw9vR07bcqahrXH4eXv2byJwgG6h8Cjrl4tDLiWMYFM+0n4+XyD6WLdpG8mtudbz8snMg0usHCkGDpvzSr6IDRfrvtVoRJFJYr3OrfEIc86zkpaklzvoERiedizGlArMvuxBukX+NsEiPrKwZfpsXnNUePZN6NudSjNEtgbWo0h6zK65RkN5AJArhmPgRzcy+riJO4aVBuq40a7nFM9D3l0IQ== Received: from DS0PR12MB7726.namprd12.prod.outlook.com (2603:10b6:8:130::6) by PH7PR12MB7164.namprd12.prod.outlook.com (2603:10b6:510:203::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8356.14; Fri, 17 Jan 2025 01:05:17 +0000 Received: from DS0PR12MB7726.namprd12.prod.outlook.com ([fe80::953f:2f80:90c5:67fe]) by DS0PR12MB7726.namprd12.prod.outlook.com ([fe80::953f:2f80:90c5:67fe%7]) with mapi id 15.20.8356.010; Fri, 17 Jan 2025 01:05:17 +0000 Date: Fri, 17 Jan 2025 12:05:13 +1100 From: Alistair Popple To: David Hildenbrand Cc: akpm@linux-foundation.org, dan.j.williams@intel.com, linux-mm@kvack.org, alison.schofield@intel.com, lina@asahilina.net, zhang.lyra@gmail.com, gerald.schaefer@linux.ibm.com, vishal.l.verma@intel.com, dave.jiang@intel.com, logang@deltatee.com, bhelgaas@google.com, jack@suse.cz, jgg@ziepe.ca, catalin.marinas@arm.com, will@kernel.org, mpe@ellerman.id.au, npiggin@gmail.com, dave.hansen@linux.intel.com, ira.weiny@intel.com, willy@infradead.org, djwong@kernel.org, tytso@mit.edu, linmiaohe@huawei.com, peterx@redhat.com, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org, linux-xfs@vger.kernel.org, jhubbard@nvidia.com, hch@lst.de, david@fromorbit.com, chenhuacai@kernel.org, kernel@xen0n.name, loongarch@lists.linux.dev, Jason Gunthorpe Subject: Re: [PATCH v6 11/26] mm: Allow compound zone device pages Message-ID: References: <9210f90866fef17b54884130fb3e55ab410dd015.1736488799.git-series.apopple@nvidia.com> <927f9cef-3f97-4bef-b6d8-53e6ef1b78a8@redhat.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <927f9cef-3f97-4bef-b6d8-53e6ef1b78a8@redhat.com> X-ClientProxiedBy: SY5PR01CA0052.ausprd01.prod.outlook.com (2603:10c6:10:1fc::12) To DS0PR12MB7726.namprd12.prod.outlook.com (2603:10b6:8:130::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR12MB7726:EE_|PH7PR12MB7164:EE_ X-MS-Office365-Filtering-Correlation-Id: ed05b6c0-10e5-4339-8ad7-08dd369301c9 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?TbPgcvZaGehYfi4B35hAu5X2CYeFUK4J36Dj+ajYNDT31zPu22mnBB/DH09s?= =?us-ascii?Q?gJ3/1YsvkQfASi/SkVKkv1OsYbFJ/gfXsoEZRBYEVFE7tGC6VoGRp+2YuBy3?= =?us-ascii?Q?vBiwYEA+9rF2+AQlQNy7tx/ofAPSLSn0SgWY9YsEf01B8diXsF4/nQDR8u4c?= =?us-ascii?Q?lg0F62s3WrxfD5nOgPe3ByRAlEogKoJAVlR0YESonUlLjfU83Dr3mVCCCI/x?= =?us-ascii?Q?Z+Uld5ZBmY8SgOx9rMmdjP5HNe4rR6ptovBPBrK2NFuqi7IyxArF+v2tLY9I?= =?us-ascii?Q?rpx6diIpofh5YvODw7JnyllXxv/XSFWenqp6LybgObccVenthLgj9JGWTxBo?= =?us-ascii?Q?ETJDnODJkpMw8AK6GYeWqpmY6MLID5IZT2Cicn/6wfoxOkUgl1JnoepUnbLd?= =?us-ascii?Q?8A/3MXo8NrCz0y8L9AADldnUbQO/SIN1RU0KHxV2GO7KCLF7fNGXH+0gCEYm?= =?us-ascii?Q?QpB84wze3gwV6ckEKHOQJQh28hhXciSPwEBb+bfBOLvEO4RqPCqMRNgDX6vv?= =?us-ascii?Q?jbNee1t79TV8MPCHI3EULG5fH85/qZpsO7ludhMaSzPEm5SLRR0A1dn5mbhz?= =?us-ascii?Q?vwgEMMxt2YwPAnyzDAq+uHulktBwhfUIgYbLgg4ZFybH070lUWgvy9YPyvYA?= =?us-ascii?Q?sUxEQYRH06HE2pqSyAtpHd0O0JOBJWvrkMPdz4mCx72K8IaOj3SZ+ltPqspE?= =?us-ascii?Q?gA21XdQIINK/xwrK6qKllZEeQUpWI341sogGFAQNcMYpcPYVaqIzWSRoBnoS?= =?us-ascii?Q?NezKa732JZz0hRtd3+9QDQMxbBUxwkz2RG6tPDAigPiYccuu7el1YFXowfyz?= =?us-ascii?Q?ZkfWsnocUVBaQpJl5Ieqdhb5oeV5i972UsvqXbcG3uWrwDX72ACU1AVVZu8W?= =?us-ascii?Q?UkLevVBryZFYoLHK9vOLHxzbGuhbj6x1cicpVYrwcP22Rnw7/hVZyxtd6UYh?= =?us-ascii?Q?MCtfd+V/Wi4wTPYqVDAKKAPo6eBlMRnA2780OrwrraFQTa9cPLtGamf7i+ce?= =?us-ascii?Q?Sw+igM8YouGfJ4NtWlqqo5341WLWpUR1Y2w5qnSdZ4WTKprStA6qHTTISIr+?= =?us-ascii?Q?fBpcY3qcDK+vkzx3QgptSrq7xJGd1Pw7uKab+eJOT+xAEe/9jkh5QU6ZugX8?= =?us-ascii?Q?Ag1BO26KjzC45bmsdATm6Px6WyTWs/x7vtKfMlamteQjaqojItbQIXnJ9aCn?= =?us-ascii?Q?sC4Pq1XCpsjytVfxbTNGV4rHaI7Rlydchq7931ZnJuT/+R/LWM1yztIHHe2G?= =?us-ascii?Q?EY1g/jW23xBHOVpxo2LJ5nMnapRkQKJbOB2pw9XdWl44T8xE/flOKEVr+vRS?= =?us-ascii?Q?AsaKQEWMU82FLO2o3sRyMlIH2t6SaTSt1kT8Lp3ON0l9mzhqrY86u5B799Iu?= =?us-ascii?Q?pCh140W93RrJy/QeGifRJmpc3Qup?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR12MB7726.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: =?us-ascii?Q?7AtOpA48OWOV64WOtNJeoR96Mw68phE52o8NsfYOSuUcEvffpaqdcbQ4Uz9m?= =?us-ascii?Q?gkem3ZabvC2q/bWsvtlyJihI8bIwm3LAlrgQXWeq0teAW0d/2Id3KALRG+/8?= =?us-ascii?Q?0JJOu9ocWIlv/impc1aku8DLl+/yF2BIa6WLPNMgSLM94my0F42ywB8vrdhN?= =?us-ascii?Q?bdRvak7mZPoIBAmckexn0rlUpGXcR8kEz7dWbjSqRN2Vk7VmvvZhgRWRWRpj?= =?us-ascii?Q?5iRSjSrfpr9IxXr/kz/roMMVhYeBfBXw/8UDRnTUBYW27heLAWOXYlUMzamN?= =?us-ascii?Q?0MXb8AA3Iub61+E7ngYf/ar3UIoyuCRv1EiRZmMaTr+FQ2NDrRL2ECm06svm?= =?us-ascii?Q?jlPi+DetUQYOcRoHhUkM3GD4BnRHWe2Ocst5R/fiRgXuionVeMNpRqb2V050?= =?us-ascii?Q?HG7gtjIbF6YRxRVz31l0s+rRjn5gUe6IGMR8qG13HFM4ghXUblgdByhrzmik?= =?us-ascii?Q?H3H1JXVDpIrgmckwWm/GsnQz5Bn4iPctF78dNha+zMbpJFCNPg31nf/djMdW?= =?us-ascii?Q?zt8hL+tIef1WSLa0OUL94M/f3xjw0EV1BGf/kN3tbdHzRoBiDuhU2QlsKKF2?= =?us-ascii?Q?b4GJILwlx9lIVqSVIVhduvOUgVD4i1/hOyat7YoXcAP/W4CfhTbPfYSXp7gC?= =?us-ascii?Q?fkWaFsoFQcGLV2HXBpKX8nFVTQIJzrEwodf9gh64GOJeAOg6w03WBd04zaNS?= =?us-ascii?Q?jL4ktZE5Y7Iqwxe3Yv//6P5n6b/MYp7Ded1df9ayYMTFk7fCoy0XvUw1PMqb?= =?us-ascii?Q?TAVdjRJR1XO1U06FzGlnzKzuzhfx/lmZ0HPCM8BjNVN0aIiiIbLZ3vORtJpB?= =?us-ascii?Q?KrwILfPPKWhcHleCNIcCBsqT/nyCu/MkBCPnHRJ5Zl8O3GYRBUqVvD9HozUG?= =?us-ascii?Q?4RcBeexa+lvr/8SEAGHF41879PAVOlFgjmz8fefp4/vHxwqvUquARk7EnzuW?= =?us-ascii?Q?zekTKc20jb7qyIefagaUG3IKGAMLrfxXLzEmMhJEvLbJUDzwWf9ZOZpfIY7C?= =?us-ascii?Q?K+UooVHqcBKKcUcydiwyKMp0c19SaKlzPJ3EMn7FsNxdt5MF6iBj4BO50Yae?= =?us-ascii?Q?4kntJKNqD9n0A8SgE4M0SNTAyTMKAniVl7LmgW2u0NfrV9gOpOZljbDqI3Iu?= =?us-ascii?Q?aUCmIKPfvF+ghstQBLb72X8nWYAcOJrQWhZ0i1m4eEX52DrxcysMIXI7Cwba?= =?us-ascii?Q?poo06265CYw0x6gYT2+E7GTZPxDp271+Kez1FJjzeK0tyatYpSDwUIHyoU9Z?= =?us-ascii?Q?+4olODk2g7mo5PqBro4jQK1ApeZQprTASgNnuAiYV7kK/DYdfqCtmUFQDs4z?= =?us-ascii?Q?poOqTblmCL7vY08OjpKJhKD25oGTakHwYsDdA35SjDDuVhr604lMvaH9Byf4?= =?us-ascii?Q?4AOS8f6emYlM11BjSGhcUCB8VcSJMtQunX3qDulALACyUBcSTiZu9j37Xs/P?= =?us-ascii?Q?1Yuh5PKBygSJ24NyZbmGhBP84sdat5EY2eCddn87Z9clAw1YvXkwsMHy60Aj?= =?us-ascii?Q?QhAe01GXl/2J7mml1nbva46XlYghy9rCy0/3SBOhhWh0AsyVG21QlQHW+fPd?= =?us-ascii?Q?5SW696qqN4i6eZ7kMlxUzB+bKT7VRDUR5ZiL1Sgg?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ed05b6c0-10e5-4339-8ad7-08dd369301c9 X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB7726.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2025 01:05:17.5943 (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: WVKkXsXz/AYhNEjzfUSmaa4LVYUijwFfMTraYvxNupSaFYPwtQUnrRKE334EsJWnzgl45TKL/VjBjvoFQsUROQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7164 X-Rspam-User: X-Rspamd-Queue-Id: A0AEC1C0007 X-Rspamd-Server: rspam10 X-Stat-Signature: 34ejihpfdmjd6z1ibby5ckqf7g7iuqy1 X-HE-Tag: 1737075921-845897 X-HE-Meta: U2FsdGVkX18CMhZDyFsIf2z9+ZvUmAjtqn2Xmcx5uCilz8ixiuU5bEsarBKQLF1WvdAkXDHpgQCEV47Ac8Hb6CxYsBivdr4uc9FhK9u1rcqfK2W8y/eZe2pcUwPU9DMqW04u9oAjGvcvMLxN5bziybRojOuzl+mPZhzWoGmeZmS2Y1eF05CTgu12puKZ+0pGvldWC8mpS0LyiyEai9SnGDhPM8MOM3uZdY4WBIGiqjBJYPyjAFrZfBJsp0uxYlFUOQtVtnbGawEEd/eonKuSsrSBSUhcrkObaSad86VGTEKiHjffOBiFvtap3YQ1P6j3dZboJ3Dxw7fucN8GKPw6FBlmB364ke5I9e2LXoC0wr7kgTg5GPKlIt3RtEPCil8AjZ1OR5A/rB0DLmtHCv3vm821fJortB0eAfwWwApaZNwP9ODEu1VP1nsvkI7fFI4p0SanQl5dq8W+0m3EhfcbD8XLynt8I6d9MZDHX/jj9PRWe7HOAsLMXVgw1PPzBvGgE9S5RhjPnRHCBkd4pe+YO4Sgczo1M2g2pSgucXDD6etXCi+gxHC1pJie4RYm4W6vgPvnFvDxWkd8Ggwy5Mfj2kEaXOK3fOMJK+yapzli53IQczV2kiGlPARzvZBvQKjq0aiCpGVQTzfqEO4RdjGu1zE6FFtI7hfhPziFSd/RhOt4weM/j2lEjS3Pih7vsqow36y030PY5sS1tBvch5eUKnYQUWsvj2yv+0JJQ/DvraA/S6FTt1mi64mKp2JGpmd4orit4j7II18ZEU/I8TE5OuUEw6doNz7DhSAwNoqztngidl+CJAa5KEELtjhGuhGH9pX0w3r3uyOju1uPlBNXTw+Ejie0FUv4mG0A79V7m/eU43430YknCQDbiE8xyHNQYjCeLyICHAke61/NkAl6QhYFGJQZyH2xoKa2XvXFhh9zYTfQV9ep6clicJuqDukeRPI2uW1DQFr5eQC8mAz xZa4yOIr 6OddBj1M99gz5Y6y505HjVnq52yOJbFvoIIl3OE4pezHBZ8q57k+4Y9Y2Jxo0W9bFyqPX0ytJHDfe9iNV9Zh3k6KoSvLoxDXr1Wc5X7PaiXTdGKz/fnr3nBNyqOummsDI7MkKAvj0GUE8W14ZzGf6PJfo7a4ha3ldF41Xlh48oPkYg4BC7tuDqLmJsIZqQer1KKyBwZ5Wx+8RwhQTHu10TQpRBxrCvUDOnJ0e7mpzUn5JirmS5FpObIgbaulel8GzddrK5iYPjeXDp0qO2k/if6mDQf1ARKTKSKFs/R4GeIwpaKFTBPtlCAVYbFa75mdL42KbcD2/bJzLlnvmMm6/4JZwIDpF8HlwAx5++vi4iYg+ZqiBdzoj6ru8i35YMrK5XOY348X8HzXyPZf6knKk31hxjOQcV7WC/6o+qQxLaefZIFdeJMwYjwEOPQEOVcxsfSvn+Xtbb8BX9ZrXOn7eR/BdEFpbD8bYmB87ElBmCy3kzqSGXPx5NBzRzQ== 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 Tue, Jan 14, 2025 at 03:59:31PM +0100, David Hildenbrand wrote: > On 10.01.25 07:00, Alistair Popple wrote: > > Zone device pages are used to represent various type of device memory > > managed by device drivers. Currently compound zone device pages are > > not supported. This is because MEMORY_DEVICE_FS_DAX pages are the only > > user of higher order zone device pages and have their own page > > reference counting. > > > > A future change will unify FS DAX reference counting with normal page > > reference counting rules and remove the special FS DAX reference > > counting. Supporting that requires compound zone device pages. > > > > Supporting compound zone device pages requires compound_head() to > > distinguish between head and tail pages whilst still preserving the > > special struct page fields that are specific to zone device pages. > > > > A tail page is distinguished by having bit zero being set in > > page->compound_head, with the remaining bits pointing to the head > > page. For zone device pages page->compound_head is shared with > > page->pgmap. > > > > The page->pgmap field is common to all pages within a memory section. > > Therefore pgmap is the same for both head and tail pages and can be > > moved into the folio and we can use the standard scheme to find > > compound_head from a tail page. > > The more relevant thing is that the pgmap field must be common to all pages > in a folio, even if a folio exceeds memory sections (e.g., 128 MiB on x86_64 > where we have 1 GiB folios). Thanks for pointing that out. I had assumed folios couldn't cross a memory section. Obviously that is wrong so I've updated the commit message accordingly. - Alistair > > > Signed-off-by: Alistair Popple > > Reviewed-by: Jason Gunthorpe > > Reviewed-by: Dan Williams > > > > --- > > > > Changes for v4: > > - Fix build breakages reported by kernel test robot > > > > Changes since v2: > > > > - Indentation fix > > - Rename page_dev_pagemap() to page_pgmap() > > - Rename folio _unused field to _unused_pgmap_compound_head > > - s/WARN_ON/VM_WARN_ON_ONCE_PAGE/ > > > > Changes since v1: > > > > - Move pgmap to the folio as suggested by Matthew Wilcox > > --- > > [...] > > > static inline bool folio_is_device_coherent(const struct folio *folio) > > diff --git a/include/linux/migrate.h b/include/linux/migrate.h > > index 29919fa..61899ec 100644 > > --- a/include/linux/migrate.h > > +++ b/include/linux/migrate.h > > @@ -205,8 +205,8 @@ struct migrate_vma { > > unsigned long end; > > /* > > - * Set to the owner value also stored in page->pgmap->owner for > > - * migrating out of device private memory. The flags also need to > > + * Set to the owner value also stored in page_pgmap(page)->owner > > + * for migrating out of device private memory. The flags also need to > > * be set to MIGRATE_VMA_SELECT_DEVICE_PRIVATE. > > * The caller should always set this field when using mmu notifier > > * callbacks to avoid device MMU invalidations for device private > > diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h > > index df8f515..54b59b8 100644 > > --- a/include/linux/mm_types.h > > +++ b/include/linux/mm_types.h > > @@ -129,8 +129,11 @@ struct page { > > unsigned long compound_head; /* Bit zero is set */ > > }; > > struct { /* ZONE_DEVICE pages */ > > - /** @pgmap: Points to the hosting device page map. */ > > - struct dev_pagemap *pgmap; > > + /* > > + * The first word is used for compound_head or folio > > + * pgmap > > + */ > > + void *_unused_pgmap_compound_head; > > void *zone_device_data; > > /* > > * ZONE_DEVICE private pages are counted as being > > @@ -299,6 +302,7 @@ typedef struct { > > * @_refcount: Do not access this member directly. Use folio_ref_count() > > * to find how many references there are to this folio. > > * @memcg_data: Memory Control Group data. > > + * @pgmap: Metadata for ZONE_DEVICE mappings > > * @virtual: Virtual address in the kernel direct map. > > * @_last_cpupid: IDs of last CPU and last process that accessed the folio. > > * @_entire_mapcount: Do not use directly, call folio_entire_mapcount(). > > @@ -337,6 +341,7 @@ struct folio { > > /* private: */ > > }; > > /* public: */ > > + struct dev_pagemap *pgmap; > > Agreed, that should work. > > Acked-by: David Hildenbrand > > -- > Cheers, > > David / dhildenb >