[{"id":3635488,"web_url":"http://patchwork.ozlabs.org/comment/3635488/","msgid":"<FAA66997-D211-4145-A49A-8A21E0FA0376@nvidia.com>","date":"2026-01-13T19:44:32","subject":"Re: [PATCH v2 05/11] mm/page_vma_mapped: Add flags to\n page_vma_mapped_walk::pfn to track device private pages","submitter":{"id":76947,"url":"http://patchwork.ozlabs.org/api/people/76947/","name":"Zi Yan","email":"ziy@nvidia.com"},"content":"On 7 Jan 2026, at 4:18, Jordan Niethe wrote:\n\n> A future change will remove device private pages from the physical\n> address space. This will mean that device private pages no longer have\n> normal PFN and must be handled separately.\n>\n> Prepare for this by modifying page_vma_mapped_walk::pfn to contain flags\n> as well as a PFN. Introduce a PVMW_PFN_DEVICE_PRIVATE flag to indicate\n> that a page_vma_mapped_walk::pfn contains a PFN for a device private\n> page.\n>\n> Signed-off-by: Jordan Niethe <jniethe@nvidia.com>\n> Signed-off-by: Alistair Popple <apopple@nvidia.com>\n> ---\n> v1:\n>   - Update for HMM huge page support\n> v2:\n>   - Move adding device_private param to check_pmd() until final patch\n> ---\n>  include/linux/rmap.h | 30 +++++++++++++++++++++++++++++-\n>  mm/page_vma_mapped.c | 13 +++++++------\n>  mm/rmap.c            |  4 ++--\n>  mm/vmscan.c          |  2 +-\n>  4 files changed, 39 insertions(+), 10 deletions(-)\n>\n> diff --git a/include/linux/rmap.h b/include/linux/rmap.h\n> index daa92a58585d..57c63b6a8f65 100644\n> --- a/include/linux/rmap.h\n> +++ b/include/linux/rmap.h\n> @@ -939,9 +939,37 @@ struct page_vma_mapped_walk {\n>  \tunsigned int flags;\n>  };\n>\n> +/* pfn is a device private offset */\n> +#define PVMW_PFN_DEVICE_PRIVATE\t(1UL << 0)\n> +#define PVMW_PFN_SHIFT\t\t1\n> +\n> +static inline unsigned long page_vma_walk_pfn(unsigned long pfn)\n> +{\n> +\treturn (pfn << PVMW_PFN_SHIFT);\n> +}\n> +\n> +static inline unsigned long folio_page_vma_walk_pfn(const struct folio *folio)\n> +{\n> +\tif (folio_is_device_private(folio))\n> +\t\treturn page_vma_walk_pfn(folio_pfn(folio)) |\n> +\t\t       PVMW_PFN_DEVICE_PRIVATE;\n> +\n> +\treturn page_vma_walk_pfn(folio_pfn(folio));\n> +}\n> +\n> +static inline struct page *page_vma_walk_pfn_to_page(unsigned long pvmw_pfn)\n> +{\n> +\treturn pfn_to_page(pvmw_pfn >> PVMW_PFN_SHIFT);\n> +}\n> +\n> +static inline struct folio *page_vma_walk_pfn_to_folio(unsigned long pvmw_pfn)\n> +{\n> +\treturn page_folio(page_vma_walk_pfn_to_page(pvmw_pfn));\n> +}\n> +\n>  #define DEFINE_FOLIO_VMA_WALK(name, _folio, _vma, _address, _flags)\t\\\n>  \tstruct page_vma_mapped_walk name = {\t\t\t\t\\\n> -\t\t.pfn = folio_pfn(_folio),\t\t\t\t\\\n> +\t\t.pfn = folio_page_vma_walk_pfn(_folio),\t\t\t\\\n>  \t\t.nr_pages = folio_nr_pages(_folio),\t\t\t\\\n>  \t\t.pgoff = folio_pgoff(_folio),\t\t\t\t\\\n>  \t\t.vma = _vma,\t\t\t\t\t\t\\\n> diff --git a/mm/page_vma_mapped.c b/mm/page_vma_mapped.c\n> index b38a1d00c971..96c525785d78 100644\n> --- a/mm/page_vma_mapped.c\n> +++ b/mm/page_vma_mapped.c\n> @@ -129,9 +129,9 @@ static bool check_pte(struct page_vma_mapped_walk *pvmw, unsigned long pte_nr)\n>  \t\tpfn = softleaf_to_pfn(entry);\n>  \t}\n>\n> -\tif ((pfn + pte_nr - 1) < pvmw->pfn)\n> +\tif ((pfn + pte_nr - 1) < (pvmw->pfn >> PVMW_PFN_SHIFT))\n\nCan you add a helper function for (pvmw->pfn >> PVMW_PFN_SHIFT)? It is impossible\nto tell why pfn does not need >> PVMW_PFN_SHIFT.\n\n>  \t\treturn false;\n> -\tif (pfn > (pvmw->pfn + pvmw->nr_pages - 1))\n> +\tif (pfn > ((pvmw->pfn >> PVMW_PFN_SHIFT) + pvmw->nr_pages - 1))\n\nDitto.\n\n>  \t\treturn false;\n>  \treturn true;\n>  }\n> @@ -139,9 +139,9 @@ static bool check_pte(struct page_vma_mapped_walk *pvmw, unsigned long pte_nr)\n>  /* Returns true if the two ranges overlap.  Careful to not overflow. */\n>  static bool check_pmd(unsigned long pfn, struct page_vma_mapped_walk *pvmw)\n>  {\n> -\tif ((pfn + HPAGE_PMD_NR - 1) < pvmw->pfn)\n> +\tif ((pfn + HPAGE_PMD_NR - 1) < (pvmw->pfn >> PVMW_PFN_SHIFT))\n\nDitto.\n>  \t\treturn false;\n> -\tif (pfn > pvmw->pfn + pvmw->nr_pages - 1)\n> +\tif (pfn > (pvmw->pfn >> PVMW_PFN_SHIFT) + pvmw->nr_pages - 1)\n\nDitto.\n>  \t\treturn false;\n>  \treturn true;\n>  }\n> @@ -254,7 +254,8 @@ bool page_vma_mapped_walk(struct page_vma_mapped_walk *pvmw)\n>  \t\t\t\tentry = softleaf_from_pmd(pmde);\n>\n>  \t\t\t\tif (!softleaf_is_migration(entry) ||\n> -\t\t\t\t    !check_pmd(softleaf_to_pfn(entry), pvmw))\n> +\t\t\t\t    !check_pmd(softleaf_to_pfn(entry),\n> +\t\t\t\t\t       pvmw))\n>  \t\t\t\t\treturn not_found(pvmw);\n>  \t\t\t\treturn true;\n>  \t\t\t}\n> @@ -350,7 +351,7 @@ unsigned long page_mapped_in_vma(const struct page *page,\n>  {\n>  \tconst struct folio *folio = page_folio(page);\n>  \tstruct page_vma_mapped_walk pvmw = {\n> -\t\t.pfn = page_to_pfn(page),\n> +\t\t.pfn = folio_page_vma_walk_pfn(folio),\n>  \t\t.nr_pages = 1,\n>  \t\t.vma = vma,\n>  \t\t.flags = PVMW_SYNC,\n> diff --git a/mm/rmap.c b/mm/rmap.c\n> index f955f02d570e..79a2478b4aa9 100644\n> --- a/mm/rmap.c\n> +++ b/mm/rmap.c\n> @@ -1112,7 +1112,7 @@ static bool mapping_wrprotect_range_one(struct folio *folio,\n>  {\n>  \tstruct wrprotect_file_state *state = (struct wrprotect_file_state *)arg;\n>  \tstruct page_vma_mapped_walk pvmw = {\n> -\t\t.pfn\t\t= state->pfn,\n> +\t\t.pfn\t\t= page_vma_walk_pfn(state->pfn),\n>  \t\t.nr_pages\t= state->nr_pages,\n>  \t\t.pgoff\t\t= state->pgoff,\n>  \t\t.vma\t\t= vma,\n> @@ -1190,7 +1190,7 @@ int pfn_mkclean_range(unsigned long pfn, unsigned long nr_pages, pgoff_t pgoff,\n>  \t\t      struct vm_area_struct *vma)\n>  {\n>  \tstruct page_vma_mapped_walk pvmw = {\n> -\t\t.pfn\t\t= pfn,\n> +\t\t.pfn\t\t= page_vma_walk_pfn(pfn),\n>  \t\t.nr_pages\t= nr_pages,\n>  \t\t.pgoff\t\t= pgoff,\n>  \t\t.vma\t\t= vma,\n> diff --git a/mm/vmscan.c b/mm/vmscan.c\n> index 670fe9fae5ba..be5682d345b5 100644\n> --- a/mm/vmscan.c\n> +++ b/mm/vmscan.c\n> @@ -4203,7 +4203,7 @@ bool lru_gen_look_around(struct page_vma_mapped_walk *pvmw)\n>  \tpte_t *pte = pvmw->pte;\n>  \tunsigned long addr = pvmw->address;\n>  \tstruct vm_area_struct *vma = pvmw->vma;\n> -\tstruct folio *folio = pfn_folio(pvmw->pfn);\n> +\tstruct folio *folio = page_vma_walk_pfn_to_folio(pvmw->pfn);\n>  \tstruct mem_cgroup *memcg = folio_memcg(folio);\n>  \tstruct pglist_data *pgdat = folio_pgdat(folio);\n>  \tstruct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat);\n> -- \n> 2.34.1\n\n\nBest Regards,\nYan, Zi","headers":{"Return-Path":"\n <linuxppc-dev+bounces-15662-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=g0lTJAiR;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=112.213.38.117; helo=lists.ozlabs.org;\n envelope-from=linuxppc-dev+bounces-15662-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)","lists.ozlabs.org;\n arc=pass smtp.remote-ip=40.93.195.9 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=g0lTJAiR;\n\tdkim-atps=neutral","lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nvidia.com\n (client-ip=40.93.195.9; helo=sn4pr2101cu001.outbound.protection.outlook.com;\n envelope-from=ziy@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 [112.213.38.117])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4drKTx13WGz1xtC\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 14 Jan 2026 06:45:24 +1100 (AEDT)","from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4drKTw0rvQz2xWP;\n\tWed, 14 Jan 2026 06:45:24 +1100 (AEDT)","from SN4PR2101CU001.outbound.protection.outlook.com\n (mail-southcentralusazon11012009.outbound.protection.outlook.com\n [40.93.195.9])\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 4drKTt3Nt1z2xQs\n\tfor <linuxppc-dev@lists.ozlabs.org>; Wed, 14 Jan 2026 06:45:21 +1100 (AEDT)","from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by\n PH7PR12MB8013.namprd12.prod.outlook.com (2603:10b6:510:27c::16) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Tue, 13 Jan\n 2026 19:44:39 +0000","from DS7PR12MB9473.namprd12.prod.outlook.com\n ([fe80::5189:ecec:d84a:133a]) by DS7PR12MB9473.namprd12.prod.outlook.com\n ([fe80::5189:ecec:d84a:133a%5]) with mapi id 15.20.9499.005; Tue, 13 Jan 2026\n 19:44:39 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1768333523;\n\tcv=pass;\n b=H+hug54L7dtGRnn9ao6DKBJAebLtzpun8kh2NsdOkG+/9C3k9/6bbcZQ0ZFnrDN1fFejh5zRPpuESUfvNmHXiZrAQNUpt7LEiUhVT4yTBkslJfTqDpvJfvlwWcfZpBV+feqKg5Rz+dCgqp1ytcrl59H632Ik9ikdE9EcGhbaS/zaslMptnljfJmWM63SMinDmLQgqWvK3PrYKhTU6t67947poKSg3aD3axvi2RNqNtk04J0kJpSnGDaao6yHIvc7+DXcP3zE7sdWSdIX289rT4Ekb39xjT5Xgpa8Yf8t+EEkRm7HhSNM0NTKfy/LABHLzsU2XlYO5nEUIq2Wt3FrUg==","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=URZjy0NetJqsHFf9pg54juFP7g9lnf+kyUH6INsMagzfrVn9CKIVVYJC7oAlFcPECdDt3VIczZpZEN4kPIuWrdZwruLVcMSLk8Q6502Jz3+LinZamJ0/46886gBSYfdSfxdomwGs8whAj1YIwBprYlZ7uEWEwDoUDOFoUoFEKDwKCRw+lKT3Akj+Qm2eMqQAtNksAvUEH0SpfM6oHQhaXb3oWGww0kd4iM0me1f3mNu0gvhSh3LabNxEO/o7nD/kB4J1FuCn8h3ts9r6/SNCuahO1gwoyv7Gxks0AJuB1CeTXKAgRLCuLiUyvl5ppjNgi6ITFPW6yAcq/STfWgavbQ=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1768333523; c=relaxed/relaxed;\n\tbh=GFvg7LjarXdZ0LiJ+70YHbzEj/FHottqgaYOlroMEbM=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=VAjCt7jWtCYkyoGrKdo/I8BtRLKOQC7XEOpBz3vewRWY/kyNBa7+7E68CEnM8ijLlJxBDTrCjOcSW1fQiwvr5qWQtMcP6Hz+P1m3KhUsPoHo6Jif6PQK1PZ742ke6hD64YVhk9GBz8aS/bexz2kN9QaZQeo5Faru6IXPv0ZN58ICxRuQWgWtBnP/ta7I7shl9+FnA5eERXg6rT6huejp56BvWt3724TqP0TbJyNnvPIvOWLT5/bPyzM+PsgfKQYNBhRBy9MSn5WEIyeBXJSaC3A3r50cYvNpzGanONWnzQKXXdMxc4UQxLk4KzI/QCK23kzWuOWVAr7ny3xcBHSNdQ==","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=GFvg7LjarXdZ0LiJ+70YHbzEj/FHottqgaYOlroMEbM=;\n b=IKjV5NrkbYCxhL62hWiqOQFsE/QkDV/oTE1iQNmWkHWm8cfpzkqAi86LWXSWDncOp81Z/LzZxVOJ+EM63Whduf0JJf3/DP9vRoY3kaVptCdG1GLgns4lKNpvcEQohf1JLkJNfn2AjSskj0afWIYu8/HmXOwh4ZhNpRF5UTu9cn+prOS2Mi3Pq1AQBilOYlJIo6kiFDe3jFh8sbP5nJBYd4vujrJffCbRVXaBNDbujgzg1/xYDULy3SjXyN8L/xQrO8YxmoF7Kd0oLwULllDZdnMDadv46Msv9HeNLmyU3gMOyuFqC87Y92R5wzJzFB5nzLylcxeqvxkTMo0QO7ZoxA=="],"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=g0lTJAiR; dkim-atps=neutral;\n spf=pass (client-ip=40.93.195.9;\n helo=sn4pr2101cu001.outbound.protection.outlook.com;\n envelope-from=ziy@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=GFvg7LjarXdZ0LiJ+70YHbzEj/FHottqgaYOlroMEbM=;\n b=g0lTJAiRh2OcKExABCaFb64GTGsR3vtNvDFy7NrJbdeXh49iaMBGtkGbXGkrLoXQPT8Mafl6qaIzmGMf9O8RtECdHb/tbFPHHCxSRDitN1ntrAa712IA/k9f7N/JDFn493ndqR2EyuICMH+YojYX1vIy2U0TxTGEcmkl04EadTQFuYOgbyFf0UgBPHg1rhTMQCSH7z3ZDHvy9Z7DYZB7OqtGZLuKe4Wm61i5TDc9HNB4PNZ+MLA17XI679c7tDZU/bT1+BdSArvec59spQWdlU243hKLTB+X0qnL38NbO0mni6qorQ4kpA0Aa5pDpx27AmL09q9Q8C4+ebOpVN+FWQ==","From":"Zi Yan <ziy@nvidia.com>","To":"Jordan Niethe <jniethe@nvidia.com>","Cc":"linux-mm@kvack.org, balbirs@nvidia.com, matthew.brost@intel.com,\n akpm@linux-foundation.org, linux-kernel@vger.kernel.org,\n dri-devel@lists.freedesktop.org, david@redhat.com, apopple@nvidia.com,\n lorenzo.stoakes@oracle.com, lyude@redhat.com, dakr@kernel.org,\n airlied@gmail.com, simona@ffwll.ch, rcampbell@nvidia.com,\n mpenttil@redhat.com, jgg@nvidia.com, willy@infradead.org,\n linuxppc-dev@lists.ozlabs.org, intel-xe@lists.freedesktop.org, jgg@ziepe.ca,\n Felix.Kuehling@amd.com","Subject":"Re: [PATCH v2 05/11] mm/page_vma_mapped: Add flags to\n page_vma_mapped_walk::pfn to track device private pages","Date":"Tue, 13 Jan 2026 14:44:32 -0500","X-Mailer":"MailMate (2.0r6290)","Message-ID":"<FAA66997-D211-4145-A49A-8A21E0FA0376@nvidia.com>","In-Reply-To":"<20260107091823.68974-6-jniethe@nvidia.com>","References":"<20260107091823.68974-1-jniethe@nvidia.com>\n <20260107091823.68974-6-jniethe@nvidia.com>","Content-Type":"text/plain","Content-Transfer-Encoding":"quoted-printable","X-ClientProxiedBy":"SJ0PR05CA0152.namprd05.prod.outlook.com\n (2603:10b6:a03:339::7) To DS7PR12MB9473.namprd12.prod.outlook.com\n (2603:10b6:8:252::5)","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":"DS7PR12MB9473:EE_|PH7PR12MB8013:EE_","X-MS-Office365-Filtering-Correlation-Id":"194ccdf3-0656-4d77-d434-08de52dc3099","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;ARA:13230040|1800799024|7416014|376014|366016;","X-Microsoft-Antispam-Message-Info":"\n V0tfoR1kazrtp2FnbeL2FvcRkspWc1i2xlqrj8r/79NnMqs8vK8VbsHRZYryzMkky+QrM13VH4wzryxkF8js58ktDCCnT7Tmt2dI/IkookDqq7b17VgnV/+Rf5qK+kVTmh6Mvcq5uFALT7QiXvxyx1HEVlv6+jG+lfMtDd47HQx6p88e1o//yaGU2wkJYAZT3Bec46fJcwAA1W+nD8zNGvbaVFvGVgZhlwnZ3oOOVzL5uOo3poPAhW5jzF1QPAXTTXjt04O2Qr+HVsOuj3rdF71DADtAZJg+2C8SFcLAz6uC8vELJ7oMCJdKNZ673i+vgxLfOB6vI8nalJFsqHj4sY52TRdG2zT079wf1uB+Dso7cbAMHUqU9xX0C/joNEc0ZLxTlQHnPin/Lum8D83DiYwh4DySzwTp8ASaYuMoP4ELkDuWUEFiCeoSAbWtWIWKZPgism/sYQ8HHgut5qLGnRmPgfvps7UJm00xdruarL6RdW3uuQfbYYz+inONXYQmkFEwpcE2KtKR+yeNwQ5UvcuRw8ZuIV2AbcpkvwUH9bwcw0KlyAWDJHGguKBRgoK919jiwxPNV/of1niQuytp0JTEVu4xYTGg9RZ60tqmxEdWrAbYdx/9Scj6/jKBYFuHQYocq2EIP9vsH97BP19Noljb+Bnvye5pQR7XxFZ+dQicNu1/z9JLGtgHnRBHDElkPG+5Qs54whuk8R8ExMMXLWFqJwspFtmjzEn5zD/kJd+udalRpLTgVq8rSP9Jtphpb0YZ9u5VqbBNoJHeDvY+4Cv77SuOpQshairDyIEenskNckNyPrjWgzWYqthCyqFLiOvRKmLRdEN2aXYB8lLrGBph8zKsiSC6sOSOdaMHcGcwY7GKYS1nN/zEq9Zwbum/RXigEX9JVkaN+cPVJ8q6P3v9NivLJr64ow/I+gzNO301RRIxay1JO3huMCzutDKd7ad52zGvvlL+BPEQopaOe5iycHjVD+cXke6mLvT4XJGSMwwryPAm9AZSmZdk53xUmLUsc+F5NFrUoPFz+DvOK6Cg0qZZn7kbNfO53x3yY3lVFklO37oyeliSeuPxlthHPgFu6k9men3eDniijyN+CcgD/j56ezOPDhoqYhBN6C60x1NGIKS7BfFZq/or0GHXiKsekwizh3ieSPtOZ+GRm4KqpOxmyn3TN/laGXJestJVv6CaGokt1UGaKZLuHkT7OtJq0YHbCeZCkHL4DhDByD9gPhbH/FMu+RlqoEK5EfeoNJQO+anOorVqTs1L+u1t0xKvsiGLWdl61fSEeBTEQkxQR+0fxM+TNp//PAXlB2wABNnmsaUy7VO2416sJbwzJVoLx8Jn24bW29vWHf7eu30W1xapCfUedSbH6qsDUvA0Z5h0qYuE8LVXbvaXykwITJs4KhDGTR8wykZHuLIyPkCuvONRD/5Mnim8jmkknCW0gEZB+Oaor5QePpTyyTO1","X-Forefront-Antispam-Report":"\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016);DIR:OUT;SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n DIjYwcdHSlG0YC/K8rOoEf235+ma00fjwIx5cSp+oQ4BzRy8xK6KeqgQYj8LGvIydBSK42TGgH6W50wrqYEQIeooOE/wySAnCCshSZ+xjPYGWOffgTVDyj1dQu2pTHOq1kd0se17BRhuTgLv5x7O4LgAHNDKA7y2R18Cua54gfmUUvTBnuGV3bh0/0BbyihzJPRk6Tad3npgXPxIVYDlBif7rppZzM+w5JcvNgm/JudWcc5k4YWp9Z/PpcHgZ+ECT7cA3NFUCf5O1f/JtYtYLSzmUQZtcVujfKjmWPc4GCnMog7woVWIcs3nPL8b04EmOv08CR5nTOo0pxdSNVmu/lnWeICRHM3y2NnTzS4AymCZMxjXssbIRA7NYL58wC+vFKm8DqPZrODV5j+ETRLhKM+v/P/5cHnxnjHej1+Ll4qhnu34Z5U7v8yHF9SaZPMmDEq2H+0vPCzuwTwJnPwfl4WEY62xzqJbMUZakPY9qfNvWDZ8flKLfZaGkkWe3eiy3S0d9SopdHj+E5vh5PGW2TO4qKdVN0tHIfzZI1seOZEMHDZswpMQOhJeL2bWhUB0PQpzgc17cQMrpVWqukFZRfOcg0z39KxGI+rzpXY0zxBQNkAG6+L5s9YuncnoldXefEj0JprsXX9jBGd6oVjn/j/kwi2huqHyTrBK49+XjxAR9gT4dA5R+PGt8fFsj7ndyX3t/LYmOKcGye4POvkLVNjulYsGEdmlSHulRNS9sxIh7bEbkBmGOCnTNrhLB+OGBHi+4Rp8IyLJkP+5Nr9Mn7hXCxAhxlnDldc1ROP98SBg3WyKmjedykmWBgHbdpd6yIdFT6+BlI7N4Vv7JwzlguX/vYll9IpXWrDLTxA0uil9w/G1mrah1EaPKuMXyuxTEK3++4RxcR9JTlJexHifn6r/izucUQr9lBs7g0iKIbt3e1EOf2uk5cQQxq09vYDNdNC/TBwf+clg2tmKiHA21bfTNr7blXrHguHwqsnsiS6hJHLRsJc0mVnLs2vAF7FuKEJKGdGO8jf5UdVeUPa1G+NzocwfpNUI8E9lA31vo8kXb2GUSadeldn0ETwTZsRu9ZJg92SFwaQAAN1eRhVO7Ko6oWskVHVPjhXrbXDbr05zM8iVy+lF8eeJup2CGfW/UeJfMX40QUNSX0xSzAM0ZKtgG6iV7jr377OMdNuU6ZvSTPOlJsYpQlHrcBBwELlFhBQFWAXIi14FnPa0BhNiUevm1tjuTLxFWnE8qlXTePjCXTQN1HmIYqwbgZHf9RZE3KkDgtAPxc3C8djxKHRVYXuCoOsTgHc5yui6ct91MTOLIeVNYHTJJzO9C0ZaaVCiFe23x8bn8MZR476G2diXgE8tYeum7i0n9EY6cAdyLpOx6RFdBrn+x1m1fygi2t8p4Z8zJo7sJB2Int4C22LzGgPeEzJEaOnQQp5d2xH2X6jU5nuC02bFov3xO5mjTO2vMAcGq3jdUbEcN2oDmAU7tYpntjuK0eF9Ln6lgG4k4GsfPw9u8JKq3bNG5sEyJlTPJJw5Fh+MeDCiiRnItS3FthkZZsSuS+ewHV9+ozE6dV6+ePjoChMl6HqUrh/R/ap/el7pDF+Rk/JVOIHR0JxDmhmYTda+MlHKSau6v+xaiWqfIf31gzZoDTxTcVRSK3HIG3d80Z8NCM6HufthP+QLV+OG+rcDxB2fsXy6YAzPfdUCN35YNyIQZJAONxx59vYlPFhAlEHKN1gSoGxOx9/Ldw==","X-OriginatorOrg":"Nvidia.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 194ccdf3-0656-4d77-d434-08de52dc3099","X-MS-Exchange-CrossTenant-AuthSource":"DS7PR12MB9473.namprd12.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"13 Jan 2026 19:44:39.6230\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 JzBEDJ2gf5uy6DAJbmr4y1wpeGprytSn7IqodfZkaA9PFRJvDDGHvBt8ane+T6e8","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"PH7PR12MB8013","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"}},{"id":3639366,"web_url":"http://patchwork.ozlabs.org/comment/3639366/","msgid":"<e28edba2-889c-4590-ab2c-6ff377c36f05@nvidia.com>","date":"2026-01-20T22:37:12","subject":"Re: [PATCH v2 05/11] mm/page_vma_mapped: Add flags to\n page_vma_mapped_walk::pfn to track device private pages","submitter":{"id":92354,"url":"http://patchwork.ozlabs.org/api/people/92354/","name":"Jordan Niethe","email":"jniethe@nvidia.com"},"content":"Hi,\n\nOn 14/1/26 06:44, Zi Yan wrote:\n> On 7 Jan 2026, at 4:18, Jordan Niethe wrote:\n> \n>> A future change will remove device private pages from the physical\n>> address space. This will mean that device private pages no longer have\n>> normal PFN and must be handled separately.\n>>\n>> Prepare for this by modifying page_vma_mapped_walk::pfn to contain flags\n>> as well as a PFN. Introduce a PVMW_PFN_DEVICE_PRIVATE flag to indicate\n>> that a page_vma_mapped_walk::pfn contains a PFN for a device private\n>> page.\n>>\n>> Signed-off-by: Jordan Niethe <jniethe@nvidia.com>\n>> Signed-off-by: Alistair Popple <apopple@nvidia.com>\n>> ---\n>> v1:\n>>    - Update for HMM huge page support\n>> v2:\n>>    - Move adding device_private param to check_pmd() until final patch\n>> ---\n>>   include/linux/rmap.h | 30 +++++++++++++++++++++++++++++-\n>>   mm/page_vma_mapped.c | 13 +++++++------\n>>   mm/rmap.c            |  4 ++--\n>>   mm/vmscan.c          |  2 +-\n>>   4 files changed, 39 insertions(+), 10 deletions(-)\n>>\n>> diff --git a/include/linux/rmap.h b/include/linux/rmap.h\n>> index daa92a58585d..57c63b6a8f65 100644\n>> --- a/include/linux/rmap.h\n>> +++ b/include/linux/rmap.h\n>> @@ -939,9 +939,37 @@ struct page_vma_mapped_walk {\n>>   \tunsigned int flags;\n>>   };\n>>\n>> +/* pfn is a device private offset */\n>> +#define PVMW_PFN_DEVICE_PRIVATE\t(1UL << 0)\n>> +#define PVMW_PFN_SHIFT\t\t1\n>> +\n>> +static inline unsigned long page_vma_walk_pfn(unsigned long pfn)\n>> +{\n>> +\treturn (pfn << PVMW_PFN_SHIFT);\n>> +}\n>> +\n>> +static inline unsigned long folio_page_vma_walk_pfn(const struct folio *folio)\n>> +{\n>> +\tif (folio_is_device_private(folio))\n>> +\t\treturn page_vma_walk_pfn(folio_pfn(folio)) |\n>> +\t\t       PVMW_PFN_DEVICE_PRIVATE;\n>> +\n>> +\treturn page_vma_walk_pfn(folio_pfn(folio));\n>> +}\n>> +\n>> +static inline struct page *page_vma_walk_pfn_to_page(unsigned long pvmw_pfn)\n>> +{\n>> +\treturn pfn_to_page(pvmw_pfn >> PVMW_PFN_SHIFT);\n>> +}\n>> +\n>> +static inline struct folio *page_vma_walk_pfn_to_folio(unsigned long pvmw_pfn)\n>> +{\n>> +\treturn page_folio(page_vma_walk_pfn_to_page(pvmw_pfn));\n>> +}\n>> +\n>>   #define DEFINE_FOLIO_VMA_WALK(name, _folio, _vma, _address, _flags)\t\\\n>>   \tstruct page_vma_mapped_walk name = {\t\t\t\t\\\n>> -\t\t.pfn = folio_pfn(_folio),\t\t\t\t\\\n>> +\t\t.pfn = folio_page_vma_walk_pfn(_folio),\t\t\t\\\n>>   \t\t.nr_pages = folio_nr_pages(_folio),\t\t\t\\\n>>   \t\t.pgoff = folio_pgoff(_folio),\t\t\t\t\\\n>>   \t\t.vma = _vma,\t\t\t\t\t\t\\\n>> diff --git a/mm/page_vma_mapped.c b/mm/page_vma_mapped.c\n>> index b38a1d00c971..96c525785d78 100644\n>> --- a/mm/page_vma_mapped.c\n>> +++ b/mm/page_vma_mapped.c\n>> @@ -129,9 +129,9 @@ static bool check_pte(struct page_vma_mapped_walk *pvmw, unsigned long pte_nr)\n>>   \t\tpfn = softleaf_to_pfn(entry);\n>>   \t}\n>>\n>> -\tif ((pfn + pte_nr - 1) < pvmw->pfn)\n>> +\tif ((pfn + pte_nr - 1) < (pvmw->pfn >> PVMW_PFN_SHIFT))\n> \n> Can you add a helper function for (pvmw->pfn >> PVMW_PFN_SHIFT)? It is impossible\n> to tell why pfn does not need >> PVMW_PFN_SHIFT.\n\nSure, something like page_vma_walk_pfn_to_offset()?\n\nThanks,\nJordan.\n\n> \n>>   \t\treturn false;\n>> -\tif (pfn > (pvmw->pfn + pvmw->nr_pages - 1))\n>> +\tif (pfn > ((pvmw->pfn >> PVMW_PFN_SHIFT) + pvmw->nr_pages - 1))\n> \n> Ditto.\n> \n>>   \t\treturn false;\n>>   \treturn true;\n>>   }\n>> @@ -139,9 +139,9 @@ static bool check_pte(struct page_vma_mapped_walk *pvmw, unsigned long pte_nr)\n>>   /* Returns true if the two ranges overlap.  Careful to not overflow. */\n>>   static bool check_pmd(unsigned long pfn, struct page_vma_mapped_walk *pvmw)\n>>   {\n>> -\tif ((pfn + HPAGE_PMD_NR - 1) < pvmw->pfn)\n>> +\tif ((pfn + HPAGE_PMD_NR - 1) < (pvmw->pfn >> PVMW_PFN_SHIFT))\n> \n> Ditto.\n>>   \t\treturn false;\n>> -\tif (pfn > pvmw->pfn + pvmw->nr_pages - 1)\n>> +\tif (pfn > (pvmw->pfn >> PVMW_PFN_SHIFT) + pvmw->nr_pages - 1)\n> \n> Ditto.\n>>   \t\treturn false;\n>>   \treturn true;\n>>   }\n>> @@ -254,7 +254,8 @@ bool page_vma_mapped_walk(struct page_vma_mapped_walk *pvmw)\n>>   \t\t\t\tentry = softleaf_from_pmd(pmde);\n>>\n>>   \t\t\t\tif (!softleaf_is_migration(entry) ||\n>> -\t\t\t\t    !check_pmd(softleaf_to_pfn(entry), pvmw))\n>> +\t\t\t\t    !check_pmd(softleaf_to_pfn(entry),\n>> +\t\t\t\t\t       pvmw))\n>>   \t\t\t\t\treturn not_found(pvmw);\n>>   \t\t\t\treturn true;\n>>   \t\t\t}\n>> @@ -350,7 +351,7 @@ unsigned long page_mapped_in_vma(const struct page *page,\n>>   {\n>>   \tconst struct folio *folio = page_folio(page);\n>>   \tstruct page_vma_mapped_walk pvmw = {\n>> -\t\t.pfn = page_to_pfn(page),\n>> +\t\t.pfn = folio_page_vma_walk_pfn(folio),\n>>   \t\t.nr_pages = 1,\n>>   \t\t.vma = vma,\n>>   \t\t.flags = PVMW_SYNC,\n>> diff --git a/mm/rmap.c b/mm/rmap.c\n>> index f955f02d570e..79a2478b4aa9 100644\n>> --- a/mm/rmap.c\n>> +++ b/mm/rmap.c\n>> @@ -1112,7 +1112,7 @@ static bool mapping_wrprotect_range_one(struct folio *folio,\n>>   {\n>>   \tstruct wrprotect_file_state *state = (struct wrprotect_file_state *)arg;\n>>   \tstruct page_vma_mapped_walk pvmw = {\n>> -\t\t.pfn\t\t= state->pfn,\n>> +\t\t.pfn\t\t= page_vma_walk_pfn(state->pfn),\n>>   \t\t.nr_pages\t= state->nr_pages,\n>>   \t\t.pgoff\t\t= state->pgoff,\n>>   \t\t.vma\t\t= vma,\n>> @@ -1190,7 +1190,7 @@ int pfn_mkclean_range(unsigned long pfn, unsigned long nr_pages, pgoff_t pgoff,\n>>   \t\t      struct vm_area_struct *vma)\n>>   {\n>>   \tstruct page_vma_mapped_walk pvmw = {\n>> -\t\t.pfn\t\t= pfn,\n>> +\t\t.pfn\t\t= page_vma_walk_pfn(pfn),\n>>   \t\t.nr_pages\t= nr_pages,\n>>   \t\t.pgoff\t\t= pgoff,\n>>   \t\t.vma\t\t= vma,\n>> diff --git a/mm/vmscan.c b/mm/vmscan.c\n>> index 670fe9fae5ba..be5682d345b5 100644\n>> --- a/mm/vmscan.c\n>> +++ b/mm/vmscan.c\n>> @@ -4203,7 +4203,7 @@ bool lru_gen_look_around(struct page_vma_mapped_walk *pvmw)\n>>   \tpte_t *pte = pvmw->pte;\n>>   \tunsigned long addr = pvmw->address;\n>>   \tstruct vm_area_struct *vma = pvmw->vma;\n>> -\tstruct folio *folio = pfn_folio(pvmw->pfn);\n>> +\tstruct folio *folio = page_vma_walk_pfn_to_folio(pvmw->pfn);\n>>   \tstruct mem_cgroup *memcg = folio_memcg(folio);\n>>   \tstruct pglist_data *pgdat = folio_pgdat(folio);\n>>   \tstruct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat);\n>> -- \n>> 2.34.1\n> \n> \n> Best Regards,\n> Yan, Zi","headers":{"Return-Path":"\n <linuxppc-dev+bounces-16079-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=LILWGVAm;\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-16079-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)","lists.ozlabs.org;\n arc=pass smtp.remote-ip=\"2a01:111:f403:c112::5\" 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=LILWGVAm;\n\tdkim-atps=neutral","lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nvidia.com\n (client-ip=2a01:111:f403:c112::5;\n helo=cy7pr03cu001.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 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dwhzc6JMxz1xsN\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 21 Jan 2026 09:37:47 +1100 (AEDT)","from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4dwhzb3mHXz2xrL;\n\tWed, 21 Jan 2026 09:37:47 +1100 (AEDT)","from CY7PR03CU001.outbound.protection.outlook.com\n (mail-westcentralusazlp170100005.outbound.protection.outlook.com\n [IPv6:2a01:111:f403:c112::5])\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 4dwhzZ3j77z2xjK\n\tfor <linuxppc-dev@lists.ozlabs.org>; Wed, 21 Jan 2026 09:37:46 +1100 (AEDT)","from DM4PR12MB9072.namprd12.prod.outlook.com (2603:10b6:8:be::6) by\n SA1PR12MB8162.namprd12.prod.outlook.com (2603:10b6:806:33a::18) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.12; Tue, 20 Jan\n 2026 22:37:21 +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.9520.011; Tue, 20 Jan 2026\n 22:37:21 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1768948667;\n\tcv=pass;\n b=a96+lKGk3UNTLEGcAZbGdMul/HLK48kL59YnB6dPEnVDUW128ykMXWA9RurOG8vQ/cBjfgBWlCDf5eDTFsl03MDKEB6x5XGLNNtXkY1GO1C2sH/eq4eyiqHEPDhak0ew1Ik0wrUsFX5vNKi4yvsYGH4Vlz+IZa32K6GP0P04tjaCfFOmvdxqErAQtqFrr4jHydfDdaEJD0tCYdIvXUJYUZ9AfQgf3cNulHWVVqsOm6CD9J9Wutl+v7VukRWCsLHjHiLjMRR09VucMcMMpPzT05akD1hSWxMipanKY6aE+aejAsOD/7yKx7wSZqiFmOEEn9FA0pfb29pq/m1+za2VpQ==","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=cQmUsXNjfJA9EK6LwHYhj6XEmC9CzEl3bU1rdFU+QjcTNXAEHyIZbZioLRnISp26NdM+H2axP74cgRBw3ry2DDH7T+cLgmtzJLCAmugey7AcuL4seyGfF2Q2DmZtz6PUXaboU/+S7s95SpDz2mTCyHDE326kgv1csDlH2WLlEtSU4z+5gAUeZsdRU56T05tHeu3XjHK3xpRId/KdlfqwWGk41TRGbkc3XWaXmvQdSj+gv8+sTzpj7o0epg5JUtw2C5PXFOYSZvp42aEgsV6y2pJcnTHJahOqIQMrTiAmsXw5Iu2LB0C+L7w77/JGEwfW8V+UaQoFHSJb9Na3lmZAeA=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1768948667; c=relaxed/relaxed;\n\tbh=V02FSuUTdC4IGFyrMcMeYU2JZx7RjI34GAb3T3cau80=;\n\th=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To:\n\t Content-Type:MIME-Version;\n b=S2LlTxZDTPDPP3BIOxhAfHerrvd7c3Ns2OBNHhZnQXbv1YSJ/CHMvSu6KFMZWwJqFOuNGiDMyQ1JmDCSxTsgLSk7yoHjLbGcH20Qlq8j8C1timRjxGl5vGLa9AXacVZb+08PbxE3ikz+A9BlpqnsbZPAICMNnVYjs32jbMuMKbOBJcdUCVx09MVUWmGvJPoJd6aHzKBgdNOf99/egWcslZgL9zBfWwG3Uu73LVa7MkpiEKECpr5jhKE9mEIrfXvOjm9wfS4AlGQtL7tUVUhk201Hb8/mcy1A221eUAuMtnWZqKwTGAL7g7eK4MWevfEwb9kls9s+hVY/t2MjnUVuEA==","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=V02FSuUTdC4IGFyrMcMeYU2JZx7RjI34GAb3T3cau80=;\n b=elzGUrhxXJkPjdzKx17zpWAlJkPjS7MV/cYXeL1rekCa53Gv2kw/81hGbqYpbZUNDOXZSBHzpgjvSyu+RoGS912VK0B5aRfExT0LuBgcA+u+pV06+2hQMf4OHM3NmAemk8232p3Rav4mNG+xDPIvstucc2XaQ1XwyVymSXdFkfR93LIIuPim3JA5FarEWwj4peU5SdU2p5+eHXmqTnKaLZQJTVWjLMBCucPB35DE0JVYjwPeydmhumtKBAUl1AVWRcF4Tf6303VNlKVKsLJfdGCqbJRdyv+ErGKyA2BnY66fH8PoNy5mlmzqENgIS/QH4agSu0Omb9560+kjRdPamw=="],"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=LILWGVAm; dkim-atps=neutral;\n spf=pass (client-ip=2a01:111:f403:c112::5;\n helo=cy7pr03cu001.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=V02FSuUTdC4IGFyrMcMeYU2JZx7RjI34GAb3T3cau80=;\n b=LILWGVAmEbI2borhXYbQ8A8RMQBwAL3Bk7MQdgK7V4qqqChxVI0prPSPx3A5Y7g0uu6jNapEucuRJGJHjn8Q0ZgNp74w1S3IV3USrYepvCJgysdGJT7WSlb6cy54GUHpMZKDK0CTi3/1dRYmaVaNYXWynRGO8NnTzzDcjNRc+v/4Vvbr0gUjcUn+c2qQOG3Yv71GXEc4o1ocoipO5ALps1PG2Ptn0TOrDXngcHDjtTTiDD6X/sir8TG4VUwb/0RgVwUOWJDvFAtJOEI2ltXyj3isfvIlXaF/GuXa0p/xzHvqwh/8gTz+soCipoJjDm91VgbqWmylnxemJtg2CZ5XCw==","Message-ID":"<e28edba2-889c-4590-ab2c-6ff377c36f05@nvidia.com>","Date":"Wed, 21 Jan 2026 09:37:12 +1100","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 05/11] mm/page_vma_mapped: Add flags to\n page_vma_mapped_walk::pfn to track device private pages","To":"Zi Yan <ziy@nvidia.com>","Cc":"linux-mm@kvack.org, balbirs@nvidia.com, matthew.brost@intel.com,\n akpm@linux-foundation.org, linux-kernel@vger.kernel.org,\n dri-devel@lists.freedesktop.org, david@redhat.com, apopple@nvidia.com,\n lorenzo.stoakes@oracle.com, lyude@redhat.com, dakr@kernel.org,\n airlied@gmail.com, simona@ffwll.ch, rcampbell@nvidia.com,\n mpenttil@redhat.com, jgg@nvidia.com, willy@infradead.org,\n linuxppc-dev@lists.ozlabs.org, intel-xe@lists.freedesktop.org, jgg@ziepe.ca,\n Felix.Kuehling@amd.com","References":"<20260107091823.68974-1-jniethe@nvidia.com>\n <20260107091823.68974-6-jniethe@nvidia.com>\n <FAA66997-D211-4145-A49A-8A21E0FA0376@nvidia.com>","Content-Language":"en-US","From":"Jordan Niethe <jniethe@nvidia.com>","In-Reply-To":"<FAA66997-D211-4145-A49A-8A21E0FA0376@nvidia.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-ClientProxiedBy":"SJ0PR03CA0113.namprd03.prod.outlook.com\n (2603:10b6:a03:333::28) 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_|SA1PR12MB8162:EE_","X-MS-Office365-Filtering-Correlation-Id":"06cd8ea4-5d86-44fe-c971-08de58747974","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":"=?utf-8?q?0lEntC/dfbZ+PhW0f5i2khpbNMZL4HR?=\n\t=?utf-8?q?Kq2X5QKLRyayr4kdlYc6Q+9WC3zHADp6oCnHtdKpSzFUC7zDiiJ00mn1PP8RGXo18?=\n\t=?utf-8?q?FmnAyFJ0kQX4vvxASIwmsOcJ8Fh8M7JfaZ/rqnCbI9bjAsnj1SyjCiBIFGYbRrT9S?=\n\t=?utf-8?q?XWFzkmxpa+MReCVmHP0LN5T8LnYRmJsDlw4B3i3Upanl74fGDLiEjrblW195XsrwT?=\n\t=?utf-8?q?hchkuZsRw9TWg0NP4cN0weXVdOLZrLTRIEJLG9+x94CN734hfJ366yu/FcKYVQXZT?=\n\t=?utf-8?q?8kAiKk1zquZoVy2ju/7NbXLtR7Z1H2Ux8O58hScWEM8WSqvKJ9FDnbW+3gIBHSSvM?=\n\t=?utf-8?q?AhhXcndKnzk6Lq/0wv/+6qFR2FryMVLKVtFY5w49Hyq6Eez/fJAQWVYF6QzWh00y9?=\n\t=?utf-8?q?qN6hedIlLaxyQR0pq3Qu5zrQ9JllWMKf28VwgiOX3mC4oxcTpYZ3byMofyAg0YIwV?=\n\t=?utf-8?q?0nc6OuF43zIXjjboWadCTRndW5FzHGcaK10JybzZyDsS7WUWe/qjyukZ9iMTYzOve?=\n\t=?utf-8?q?2a84XTYohjPMOcv9VMlhuGhOfxI+VwTSYEaaa6/nofUVVOdJAl05TZARKSHXFIpVv?=\n\t=?utf-8?q?0vZaRT6G4T2D5jx9c+76bT8MWl18KgTo2es8yU3+EnI5zHgy90dqGcIxTLN8SHsBK?=\n\t=?utf-8?q?QR3At1byCrOHnWBHSMYvdW1zK1gnOtbgMzamnVVdpATbiy5HeZOISHj+3IOm9XMiy?=\n\t=?utf-8?q?XDKZmMol7YdnykaxB4xS5GYLjq/v7NSj0bHyfLbSkJNVX9OL6Ilg/5zWcMvnw40w1?=\n\t=?utf-8?q?izP/tDIYnoJJynrmJO9VBHBPiAE9yOOXSvfzy4cL735X0Ah64Nfj8iM2hwH6Mi3yr?=\n\t=?utf-8?q?AnGah+Bve/RTGmvZFKzNYyXU/aV6JD6RvdlUflSiYT3njLS9C7VQofn2AE/kFfehg?=\n\t=?utf-8?q?ueNW6NSmMUfwo92g4kj0ASxE4ki+ge7K2RknaMtOn/7vIpzyyl4eV6ayMTtLM+TuJ?=\n\t=?utf-8?q?q4rSiRxayQQWKjfLzQa/9btOY4By0StPYIuNXP9tJvuqQZqNYDPaobsQnch4snj6O?=\n\t=?utf-8?q?152pCnN8yuNSESydO70PtU3MjN4CSlrw34sEQRcScLAWQkZXmZjLo6ho4woBOHX/f?=\n\t=?utf-8?q?TJDS1oqiEMh8P8IuTizJpcoBvNQpuAM3Gieg3RF2ba4mhyibxQOLqDmMn/wVoqmlR?=\n\t=?utf-8?q?eIGBB2k/HaguQwvDtV42MF2w6ewbOqfHQQo1w0+l9jEfbmzm/fI08LS6zDY3tx2p+?=\n\t=?utf-8?q?ZB0C+6j1bR9ElCcY9onhEStbbpPdjpfQ9vFT9rcUDc87oqMsk0+TvEy/cVezmL4kD?=\n\t=?utf-8?q?AwF2MbQqafAxMl+dedFGKtH+dh4uzTHi0LHYobPw6wTXx8iS+/QLMi8Q3mV812Z8S?=\n\t=?utf-8?q?+g0unnoNfGII3nyD7GGHEQD6OeD5QlwdWXGjteAKIKH4kbU5c1NThkb1OE3/2+mFU?=\n\t=?utf-8?q?IJ9xtqUYXk4rBHk8RMmshNy/hHWzVXRPI1ZhuvTlgdrqOit6slcz8hE9gbSx8oau6?=\n\t=?utf-8?q?tcK+w77FA6UzsvocJc6MSwEi/+mVw+WJI28vNMCq3gUU0Q3jbKhck=3D?=","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":"=?utf-8?q?J8uRjSiyYB7b6Si/oIOh8mNZAtPN?=\n\t=?utf-8?q?XYzP8wtRyoUXw9FMZims+Z8sYd4hGqy4t3AcB0OCth0gUWO2imRwuY7q4HnqYp0Dy?=\n\t=?utf-8?q?hScJ8obvpSLwkcGr1WvB1wP3Lqpdt/rY2ZPS5n6v/zdvmdGWa1Viq2m4wh9RNVUeC?=\n\t=?utf-8?q?jryVdDjMiqpv83Tk7cJpp/PM89kciTW/pi1nvZErjsi2s+jhOOFKvn9HbCz1Zpy3u?=\n\t=?utf-8?q?9/gqsX7R1F7naFjusBcc9yGGYlKaL91eQbAZhGsAO0GRbMOnSnWDiWbLfqIJhEa7Q?=\n\t=?utf-8?q?FYpr/OZwbHri9zHdkLAdqrcw2yGepNjv05HxasfwSuJC0IuDITjY+8htvl7OY1ecP?=\n\t=?utf-8?q?XXAQVMqsMHTKNJRjkqzt2vXGQGfD6psUyGUkkjdPucDIMuZHVpnDb5la+DMylxtYm?=\n\t=?utf-8?q?ilGIWwLbIu5rrF3AtgG6uWhVevfASjVSNpOqt2DmAF2IdjJDg1+Vn1QvL9NhqRK/G?=\n\t=?utf-8?q?wrtDo3JxT8bUTW0FWBmqYKXQPi66Br5Vio1dlDjBQAFrz+94B8a0GuXx95aNK9tM+?=\n\t=?utf-8?q?8R2JjEKXG9v5OG4mGP9Dz4E57wWAefnOoccrJKdCmjtOhRpXikRsw+B/HV/mtHwJ3?=\n\t=?utf-8?q?WPhFpmHhl2BGTR2IeXYfSdtwHhnsXxsYcrClN+Su7iNCCIABLYU2mi7dVG2zYc9tA?=\n\t=?utf-8?q?JpyOoRFXRd9UfNj5uAW8/TtKlu1UQnwIQIZaJ++o2SO65DpoJzaYMwGin2BH79Tka?=\n\t=?utf-8?q?H81+I0tNO2qcbPvE3KXcybNGUWLxP2eV3Ih8GLSFi9tx5PdCRDI4e1B76DJqAeMcK?=\n\t=?utf-8?q?O1cVzkIZyHo5SoxLckTecwcGBa1iNDIO3lNdLW7ox3d5XMZrm6fBBv1wSH3daySom?=\n\t=?utf-8?q?UXZl4JOvm0qGFvligNaLanngb6NKdYF11bRwY11jgBiiwdI415kf4gk8n4jQ5PE4V?=\n\t=?utf-8?q?kQeww3Vz1HkLJKlUvhwuobzP/8Fq26vlgsnkwwqe10KVx2tzqOoB8KPVLFNRs3KqL?=\n\t=?utf-8?q?1Xr3c2GucTma7dwFld0c9xjMbDrfuUXQa4MzJFOJoIDR8G6KyaAmi6hv3x3ZljEtP?=\n\t=?utf-8?q?KEIzmBugvWuhGbC9dLlYkofDvFISCNLqCoE77NEYTHHf0Pp4LZG8swsOltyxrgaZJ?=\n\t=?utf-8?q?yaB1lOJcZdxRVGkkWzfpndQccsXZddKCkC+y8O+8XOkjs1lwWurt7QEgIgBe34Wp8?=\n\t=?utf-8?q?lCDiBzz9wBa4tdAT1YWIlqOwh5ynuq0iGFTD5C3WBt+s8YUov+00V+N8RiKXP+aoa?=\n\t=?utf-8?q?tOKcU8YxZEU1HdHeG36cCP58Gfsuoy1vvyMWq9ijP0H02MErR2AgmfLvDDelhffEx?=\n\t=?utf-8?q?SkD+CnbZYCk4+/LIhQz3BFLs1fCWj2Jn2axla79hk3qVwzweX0WzVYoUqynkSqd+H?=\n\t=?utf-8?q?maKH4iJAPvxA9jLPa6El/HvI8ZWRQqGUTCrNHS8Zm2J2c1x9zUXlDJOCvnvz8m4Fe?=\n\t=?utf-8?q?30j4tJj/cucEVmgomjdn6S4adObKltjO7HGBsR21U8AHPS9aJTHCSLAgjixIJ75Wo?=\n\t=?utf-8?q?nfPOv23HmH0V4TFfXg8jMjAQolYKhEw2/Mqes23p185gOYjsPhy/cpagfgtS9pum5?=\n\t=?utf-8?q?Qit5M6GH7LicO1MNplUwANZUKTGM3ZTPtzyHxDPPjoPeAbc28bKvGXmNjhIL7Ny8i?=\n\t=?utf-8?q?u4xFIQ52Bwr4Qq8i+kT/Wk7QISA6Dbka3qHAEafe9A99KLeDZbN06UBE6HGEK5gWV?=\n\t=?utf-8?q?ewTmgdPD9fsDlUiG0xGuO2FH2LpwpGIQ=3D=3D?=","X-OriginatorOrg":"Nvidia.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 06cd8ea4-5d86-44fe-c971-08de58747974","X-MS-Exchange-CrossTenant-AuthSource":"DM4PR12MB9072.namprd12.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"20 Jan 2026 22:37:21.2197\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 cATth11Oi3B+VUddM1UmMQtIq6SsMrIJtegP+FXd8ZeLV0hmwbXsM+dz293fYmK4tktoFS0STtukobAYb3W+CQ==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"SA1PR12MB8162","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,SPF_HELO_PASS,SPF_PASS autolearn=disabled\n\tversion=4.0.1 OzLabs 8","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org"}},{"id":3639369,"web_url":"http://patchwork.ozlabs.org/comment/3639369/","msgid":"<4784318E-D6AF-471B-A2E0-8B04EC0A238E@nvidia.com>","date":"2026-01-20T22:49:17","subject":"Re: [PATCH v2 05/11] mm/page_vma_mapped: Add flags to\n page_vma_mapped_walk::pfn to track device private pages","submitter":{"id":76947,"url":"http://patchwork.ozlabs.org/api/people/76947/","name":"Zi Yan","email":"ziy@nvidia.com"},"content":"On 20 Jan 2026, at 17:37, Jordan Niethe wrote:\n\n> Hi,\n>\n> On 14/1/26 06:44, Zi Yan wrote:\n>> On 7 Jan 2026, at 4:18, Jordan Niethe wrote:\n>>\n>>> A future change will remove device private pages from the physical\n>>> address space. This will mean that device private pages no longer have\n>>> normal PFN and must be handled separately.\n>>>\n>>> Prepare for this by modifying page_vma_mapped_walk::pfn to contain flags\n>>> as well as a PFN. Introduce a PVMW_PFN_DEVICE_PRIVATE flag to indicate\n>>> that a page_vma_mapped_walk::pfn contains a PFN for a device private\n>>> page.\n>>>\n>>> Signed-off-by: Jordan Niethe <jniethe@nvidia.com>\n>>> Signed-off-by: Alistair Popple <apopple@nvidia.com>\n>>> ---\n>>> v1:\n>>>    - Update for HMM huge page support\n>>> v2:\n>>>    - Move adding device_private param to check_pmd() until final patch\n>>> ---\n>>>   include/linux/rmap.h | 30 +++++++++++++++++++++++++++++-\n>>>   mm/page_vma_mapped.c | 13 +++++++------\n>>>   mm/rmap.c            |  4 ++--\n>>>   mm/vmscan.c          |  2 +-\n>>>   4 files changed, 39 insertions(+), 10 deletions(-)\n>>>\n>>> diff --git a/include/linux/rmap.h b/include/linux/rmap.h\n>>> index daa92a58585d..57c63b6a8f65 100644\n>>> --- a/include/linux/rmap.h\n>>> +++ b/include/linux/rmap.h\n>>> @@ -939,9 +939,37 @@ struct page_vma_mapped_walk {\n>>>   \tunsigned int flags;\n>>>   };\n>>>\n>>> +/* pfn is a device private offset */\n>>> +#define PVMW_PFN_DEVICE_PRIVATE\t(1UL << 0)\n>>> +#define PVMW_PFN_SHIFT\t\t1\n>>> +\n>>> +static inline unsigned long page_vma_walk_pfn(unsigned long pfn)\n>>> +{\n>>> +\treturn (pfn << PVMW_PFN_SHIFT);\n>>> +}\n>>> +\n>>> +static inline unsigned long folio_page_vma_walk_pfn(const struct folio *folio)\n>>> +{\n>>> +\tif (folio_is_device_private(folio))\n>>> +\t\treturn page_vma_walk_pfn(folio_pfn(folio)) |\n>>> +\t\t       PVMW_PFN_DEVICE_PRIVATE;\n>>> +\n>>> +\treturn page_vma_walk_pfn(folio_pfn(folio));\n>>> +}\n>>> +\n>>> +static inline struct page *page_vma_walk_pfn_to_page(unsigned long pvmw_pfn)\n>>> +{\n>>> +\treturn pfn_to_page(pvmw_pfn >> PVMW_PFN_SHIFT);\n>>> +}\n>>> +\n>>> +static inline struct folio *page_vma_walk_pfn_to_folio(unsigned long pvmw_pfn)\n>>> +{\n>>> +\treturn page_folio(page_vma_walk_pfn_to_page(pvmw_pfn));\n>>> +}\n>>> +\n>>>   #define DEFINE_FOLIO_VMA_WALK(name, _folio, _vma, _address, _flags)\t\\\n>>>   \tstruct page_vma_mapped_walk name = {\t\t\t\t\\\n>>> -\t\t.pfn = folio_pfn(_folio),\t\t\t\t\\\n>>> +\t\t.pfn = folio_page_vma_walk_pfn(_folio),\t\t\t\\\n>>>   \t\t.nr_pages = folio_nr_pages(_folio),\t\t\t\\\n>>>   \t\t.pgoff = folio_pgoff(_folio),\t\t\t\t\\\n>>>   \t\t.vma = _vma,\t\t\t\t\t\t\\\n>>> diff --git a/mm/page_vma_mapped.c b/mm/page_vma_mapped.c\n>>> index b38a1d00c971..96c525785d78 100644\n>>> --- a/mm/page_vma_mapped.c\n>>> +++ b/mm/page_vma_mapped.c\n>>> @@ -129,9 +129,9 @@ static bool check_pte(struct page_vma_mapped_walk *pvmw, unsigned long pte_nr)\n>>>   \t\tpfn = softleaf_to_pfn(entry);\n>>>   \t}\n>>>\n>>> -\tif ((pfn + pte_nr - 1) < pvmw->pfn)\n>>> +\tif ((pfn + pte_nr - 1) < (pvmw->pfn >> PVMW_PFN_SHIFT))\n>>\n>> Can you add a helper function for (pvmw->pfn >> PVMW_PFN_SHIFT)? It is impossible\n>> to tell why pfn does not need >> PVMW_PFN_SHIFT.\n>\n> Sure, something like page_vma_walk_pfn_to_offset()?\n>\n\nJust page_vma_walk_pfn(pvmw)? Since the code is comparing with pfn.\n\nBest Regards,\nYan, Zi","headers":{"Return-Path":"\n <linuxppc-dev+bounces-16080-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=pzFjVKPY;\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-16080-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)","lists.ozlabs.org;\n arc=pass smtp.remote-ip=\"2a01:111:f403:c001::2\" 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=pzFjVKPY;\n\tdkim-atps=neutral","lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nvidia.com\n (client-ip=2a01:111:f403:c001::2;\n helo=sj2pr03cu001.outbound.protection.outlook.com;\n envelope-from=ziy@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 4dwjFT5z5dz1xsg\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 21 Jan 2026 09:49:49 +1100 (AEDT)","from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4dwjFT2Bn3z2xrL;\n\tWed, 21 Jan 2026 09:49:49 +1100 (AEDT)","from SJ2PR03CU001.outbound.protection.outlook.com\n (mail-westusazlp170120002.outbound.protection.outlook.com\n [IPv6:2a01:111:f403:c001::2])\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 4dwjFS02fSz2xjK\n\tfor <linuxppc-dev@lists.ozlabs.org>; Wed, 21 Jan 2026 09:49:47 +1100 (AEDT)","from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by\n SA3PR12MB9090.namprd12.prod.outlook.com (2603:10b6:806:397::11) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Tue, 20 Jan\n 2026 22:49:23 +0000","from DS7PR12MB9473.namprd12.prod.outlook.com\n ([fe80::f01d:73d2:2dda:c7b2]) by DS7PR12MB9473.namprd12.prod.outlook.com\n ([fe80::f01d:73d2:2dda:c7b2%4]) with mapi id 15.20.9542.008; Tue, 20 Jan 2026\n 22:49:23 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1768949389;\n\tcv=pass;\n b=gkMjZ1T1X6N0rp00RKGYsaPQQJ+OW19+kEYCWO9I2fX7oUYEHh8QnH9JN+Mx2c7DtMUYChwEpKGZXNj3LR7bZze5Ruw0I0sUj7jGcNll8kFzh/T9QcUVZFdA0kEa61OCvxc8+4bIk7Us0UMlLeGXkOqDu2kXFbofippiRXlj3/24ToEEKmPg5JQLtrCjDOtp2MgJR9XEaLIzfkXISNVjrv063tTZkOGItoiS/6/ve8uHaEA4ZjobPc2J8aVJfKwP8G8Za29/yKOxSJ15K8gotgzE+nsbyMIzxH+RbdBM0jjR37kYz0Gacu6V7Bndw3dAHe2C31tO47uSkT1HNxyXqQ==","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=tZ+zeAhgS4wXx/6XGGsxkI5irHoY4Y8bAhaTClVK58QglU/P7mfDzf95EpijhFwCgQ3kX03VOHW1rOH3AcAzXq3CVbpvua4AaskjI71jSBJrWHt6loTHXOLDL2TU4QY2/nXKLXR5AkEQr9WAgknwL9lFWVB7EEkR/lFTQPaWyiSjHMR9Nt230/RqWB4gk0U7Zxs24waqWSw2Uqvokmp2NWcUZdJnV+pcyQXA11IhJD7bcugLsarCATtVSNZVAflREWkNl3y+qa4l46kgmCqO7nNSBqjLJ4siGgpudvdhlDE8RyIQyjbIsSET3rsENMScIS3spBFYsB2/mSLPgYIe7g=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1768949389; c=relaxed/relaxed;\n\tbh=NK7tgxfamwfCveW5PV0ogxgKGLJi8Ylh91Unv6sJGRk=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=lX6oboQWrCbqOuLEI8a0iV6xulMqvegm/3/x7Q951q7FuXwylP89d2HwFBXlmvwG8VmHSprPJ3V3vI6HsIe0m4pcCYBD0jParwBbChaYjlp827uc1LKuPJS5YJcBd/oUrLvsxZ17nXfCQiCitO/XglIk7KFjdnzWtu9JQfF3t79NrURJkcAAnMUMmi8O3toInpkmK0MZZDRpvEvpKUbl5rfsGmswyEY7kadfmqW+L1cZ/vf9tqR7M0ckbJCEuCEpVuS7eGbggV7FiHnwa2QnR8OOGovhTF3gRO/FRdcNoaWfMJpx+0qBmBYjVWB8Bty9bvKPIAxYKI8WhBtb2iPJ5g==","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=NK7tgxfamwfCveW5PV0ogxgKGLJi8Ylh91Unv6sJGRk=;\n b=VlMeg6CRkhiss/ECgHSNybDjtvBOJ0zms5EYsDxKyg4DSyNk8EWL+uhLZkyc/aNUaisWd5ds9z0cyNjg0kAVd3+WLRbZ7dGDkUjTdk93a7ueRsbDxKAhsOD9aFHO8zM8RveC7nfJ2miXxvrPWFofZCNMNB/mHfP/FwRKJc1y1iAVvQkJQhng01z47JesVGd7JJUmCdL4SHE4bJpTD9DSqECd0v9hfZi+9CNZS07nvjAZyvNM41OQPdrO1nR+7G9mdtCjRfKAoolMpObCpmdTCgXB742urQhTnkUeNAwiclj/pGvIJateLPD0ZckyYcmjMVrtsd+Bm6Tfz9HQd6WPGQ=="],"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=pzFjVKPY; dkim-atps=neutral;\n spf=pass (client-ip=2a01:111:f403:c001::2;\n helo=sj2pr03cu001.outbound.protection.outlook.com;\n envelope-from=ziy@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=NK7tgxfamwfCveW5PV0ogxgKGLJi8Ylh91Unv6sJGRk=;\n b=pzFjVKPY8aT4JpFWXnKVC0yoRGJuRF66JhAa3nynD0aKt6WIBhX0Z82iXxN4azU1n47lRgiiuX9N1wckn6Y7z/UDBJEuoXFXMF82yXtgkp03u4p4lnKe6I3k4iCUBk1L5J3B8nVcZ8rz+5/abdVbIowQ/V5pozxOPa8ro2Cb+5BAEeilFswgZt+iO857aB5QLEPQ81JD+m6KHdDD9ZaZYl53FWxTbLh9nLG4r2BhyD48lOLthJsOydsnfhY5pV0N7YXtkHOXGuIPFWyseChr+oS0Yzw5qnEprICvoHwybxqKanloay6KW/A+6Mp+ewUK1gj9vg1TFD7bfyd7Bs1S7g==","From":"Zi Yan <ziy@nvidia.com>","To":"Jordan Niethe <jniethe@nvidia.com>","Cc":"linux-mm@kvack.org, balbirs@nvidia.com, matthew.brost@intel.com,\n akpm@linux-foundation.org, linux-kernel@vger.kernel.org,\n dri-devel@lists.freedesktop.org, david@redhat.com, apopple@nvidia.com,\n lorenzo.stoakes@oracle.com, lyude@redhat.com, dakr@kernel.org,\n airlied@gmail.com, simona@ffwll.ch, rcampbell@nvidia.com,\n mpenttil@redhat.com, jgg@nvidia.com, willy@infradead.org,\n linuxppc-dev@lists.ozlabs.org, intel-xe@lists.freedesktop.org, jgg@ziepe.ca,\n Felix.Kuehling@amd.com","Subject":"Re: [PATCH v2 05/11] mm/page_vma_mapped: Add flags to\n page_vma_mapped_walk::pfn to track device private pages","Date":"Tue, 20 Jan 2026 17:49:17 -0500","X-Mailer":"MailMate (2.0r6290)","Message-ID":"<4784318E-D6AF-471B-A2E0-8B04EC0A238E@nvidia.com>","In-Reply-To":"<e28edba2-889c-4590-ab2c-6ff377c36f05@nvidia.com>","References":"<20260107091823.68974-1-jniethe@nvidia.com>\n <20260107091823.68974-6-jniethe@nvidia.com>\n <FAA66997-D211-4145-A49A-8A21E0FA0376@nvidia.com>\n <e28edba2-889c-4590-ab2c-6ff377c36f05@nvidia.com>","Content-Type":"text/plain","Content-Transfer-Encoding":"quoted-printable","X-ClientProxiedBy":"BY5PR17CA0001.namprd17.prod.outlook.com\n (2603:10b6:a03:1b8::14) To DS7PR12MB9473.namprd12.prod.outlook.com\n (2603:10b6:8:252::5)","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":"DS7PR12MB9473:EE_|SA3PR12MB9090:EE_","X-MS-Office365-Filtering-Correlation-Id":"88f83e99-4a56-46ec-d745-08de587627e5","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;ARA:13230040|366016|7416014|376014|1800799024;","X-Microsoft-Antispam-Message-Info":"\n WOOZhAtYZbUOU/WrKzghqmarwNWA5H+nNF3TgUgYSNIctKSoYr3t6edNqStevO975lMi1QmYlZxxHvo4SmKuKnYWcBeDfSUltP39BGLsfDzJQ29fCs7it2ibPXzN/Jicr9hdP3QspQfqScDZkwp7AMebSrrCS7v0NJQ+sQgGpWSz/HwV9tM0aLuDSe6xrAnWRa3jDYKsC/+5AaSNlfIWw7F49TbEEDVVBV8h5+1wZ8ktmyFJ3lS7uLK4sPpd0q8BKCkeQGrdBP+9N5S67TYPZrQidNKnHF5hG0ht4urmohyPkyHmWorRr0suQdVlOaSlsjIeDX1lCBiSU+/wNdAyT6lCr2tiDtZleLfjGwcgnR0/PS5g7gJB0u16rtY0sn/HAeTx45X4FEaYDOn+u4JsDPqq+OWt4IFxvaIMBckHKAifw71MMp5u0nLjGzVg/SMo9/IfeyXvWi8AbcpZi4MOWSfQHbKmkmG+XLfSGo3QaX3CL9I8VkUlfHuz1uOAzctU9qKZv5p3o1ZuTrxGFenhsAkedySoQAo+CKMXzwzjUKrERqWYwjz43vaUnRvj+j+aJPWeTjjQOl5VOPstdbnf9seAebNztqfpG3PMZDyViRFUl9vsgsFJnz6Cvcx97bzB9VNGXdweu2dq00deLhEWKApyDk9T7bJ1eeZa4nlz2AffN4bEkf6iveiTo2XcFrgqeFQ1HAepIYw8eUF/lXTLX2zO/QR/CLVlwvQPGyNa2kCxUZpJkMZb3ymmup6sNL71tHROJWVrw+9boPLYZPvN2jY816p3S5ofiQdb2MTaK3qGKT4pesgWhmTuXW5+s7OO7juqqtS+s/BD8TFPEzJ+IlM6iFmh42XbCynEe8ynYL0nmo5YhBSPHE8OPLdm2z58zwytTFmiXlKrOFGp/w43JOvZ4h67aVtJpoJ1jmkh0wUWPnHvsOMe7XOrdaZhhsOl2ne5w95HYpaad2CZPDUYGSgrh9QKPCMlz8wPk7FbudliJhBmbGA407azI5CLQ/DoRcII0GvbraKUykhRqL6qoSZrSy/bGXzrqFie6h+FEK2yjggRWcP52/a+v5BMiIoDlJmn4zgZw6dhhLy3Ho31n9gTtW6VOIw/8vTGlLDNgtdTqXcrz5X2mH3sjIQr973ZhoSLU+O6JK4Q8VCAUU7XhToZxn/4Usd/YZmX+tl8p016e86za6s04uhzzFm3pJNEVptoW3iW9Rjxefm+ltyDkKTIbjiUKHn8iSIR6giyglaav++q/VRFXh9ZA3dDB8/9a+k4e3H+EUSS0883kCDDTj+RSNDsuPhbyQEVr7wHncxr/onXtQsWCTavH/gFGBJBiYZ+FCmhkChaT77kTquOEtm66RMhsa99EgJPJdpl8IxasOxDRq/7YpGrAZQqpnmSrCshuzPXzwkcX0QlbjjDv8tnmFxzwLugzKjlgBp7hBcgBh1FMlbnjX7+f16YBM+nqpB3mgUnxYWI5IOgh8ma7SZEWPtOqRPHE4Av1SUjg5MVXWNBop9E7kjhDJLrphY3goeI0CHBEHh058rQ8dMGycOVc6utOhB+UijCs4Ax/U4=","X-Forefront-Antispam-Report":"\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n yWhf/MPnzJbn6582+BGRRdL1yzCRRVOP78s8T8E7HLReSy2DHznDDUwGdxasxn/Reig/rtBlRtPqS6HfI1QUcrlAfiWLRfgGNgoxeNBJg4Fuod+4Iy1f7dHSr8pmREmZ7QNd+1nvpkHFRPeGPa3oLpjp87FfKX+j82HvfeLWqOxFvNbuNhpcusgVYA+GEwSadTEp9m0v35eNVAfJjzQKxY6cyk/dWN7BJaD/SWKci2cXBhSfdt1Fb/jcNUeObIpvdLtfRUqB60chRZqVrqiHVP9KtDKrDmr/RNdR1Qj34/PFrQbJvlveev0kCdG9OkGuiWtJrSV1vjLx7z73z62ZCwUnw699fi9HBcR7J+jcnawrok7KhpRzbdArXxfIKA8wj37oQFC6L2L94SYzdh5TQoYBgeVAfnlzt4lYmFjgYNTU0JWx28X5a2x6DCMitxsPtfEBcc6U9yZ9xKRrO3p3ds7bL/6BqT+76CbC+qIhhahakhBeLybggc+CRSrNrC9SnO+Ed2OlbpKi5KK7wNA3K8EEeO9JneYcDNlaIpAT8tLJwO0z62SuzNIjpIisB0Yas2dR02lNKDmTWHSzf+KVaKfekIsCAI/ZmO6kIk49x+oBEOeMigpIsNN/NKbefyKoZZgczewxvfBZNeJ/nnQbxHt1X3Bqg46GVNXXW8i47IY3XCBo5I2/ZkQUU7XZ0tqLP0h/i5b54yHbJbV39mIWKcyLUW9D07K5oUwUlEGrZdiM9lI4n0tSFtuCV9CZ7hSLyBb7w4TxFUjPg1KOA1rtOWFHqEiAE7RV8tLixGbKV+pnyUi1nqToGMagxkAdeAxnl9D5K1NS+R/Oip4si5BH3E/Quhm7vLTvZBvalM7r7d+JALYoMn36zkK/HzlQzKYkxYn8IiPFymq8K2zqrtwJQE3lIIwFWTi4fnAbc4FkOPEeoWtt5526VROItW8eiN1sMpiZbRjtRF96aiqRe417WLA6TJ0sIIU5wFPOnrh4M8ph7B/aEP+96/FVfygQTg/Ve9uHdYGtQxyyHVDnebe9KVdNFCU2Q+/Dfh6wLIcBRA2pknS/obkY/ezc+xaVyh8NirDnIYMsvIwVWnx/FCm56ej7mZJjpEyG8ITPu1GGs8Rjnkqw8sITRoDi0fIW/8rCv4Eh8bt/5D/6N6jeIh88d1buT4oZnmMEbk1kSu74ybyIK8ZGfSE8wzQV6+TlVJdZE9tJ5MXj79Lu/DzwCrv1+vEb9YxkNQ0eeclRazCWXVyYlU4uqnV8EU50Rqsn9+Cd8NETbVtQ/UZQ5N86cMhCdXVW0BezpfkA0cUsCsiocXSLpN5KBaCBvZiria31y7eP/yLbRLUOMtnrKls9rfskPfStHUFxJQTuubK1JDHaI8IGBPn1pwE6Rtsc2DeBaPUwXxp9yyiieFViSM3/Hsuti1SW+n4EgHJ1jG2V/brNCHokl20d6Zdhn/wq/p/CiPHQffDhNq70j3zmcF/vqWjYdGDT//0rRBFidg5m9IKHWbdSmRqkqZa8b3L6TAAe/e66DV+xSaAGunNqevM4hL/4i3wbjLn8jXpv9pfQaEKB4FmObD53Pw+JZgy7DUeDvX7ZCTAq0tJu831AE+2mOQN7UajyrOG99r/fZBDVsI3MDxocRWmf9zA/3xkIn8feDP4Cos31yJEufoKdrqONCMtjcEOnxWPHimqLvyT3ryYJPN5XVr+0BAmDQ7/V0y0Y0GhS","X-OriginatorOrg":"Nvidia.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 88f83e99-4a56-46ec-d745-08de587627e5","X-MS-Exchange-CrossTenant-AuthSource":"DS7PR12MB9473.namprd12.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"20 Jan 2026 22:49:23.3443\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 bVy+A6oO9C8bdfiZTCzJDUKJB8dvMbyroDG4FKqmd8baze8Qz/et3Gq1btzvP6jR","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"SA3PR12MB9090","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,SPF_HELO_PASS,SPF_PASS autolearn=disabled\n\tversion=4.0.1 OzLabs 8","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org"}},{"id":3639371,"web_url":"http://patchwork.ozlabs.org/comment/3639371/","msgid":"<09a8d599-4612-4ee6-b71f-f2f356d4a14c@nvidia.com>","date":"2026-01-20T22:52:29","subject":"Re: [PATCH v2 05/11] mm/page_vma_mapped: Add flags to\n page_vma_mapped_walk::pfn to track device private pages","submitter":{"id":92354,"url":"http://patchwork.ozlabs.org/api/people/92354/","name":"Jordan Niethe","email":"jniethe@nvidia.com"},"content":"Hi,\n\nOn 21/1/26 09:49, Zi Yan wrote:\n> On 20 Jan 2026, at 17:37, Jordan Niethe wrote:\n> \n>> Hi,\n>>\n>> On 14/1/26 06:44, Zi Yan wrote:\n>>> On 7 Jan 2026, at 4:18, Jordan Niethe wrote:\n>>>\n>>>> A future change will remove device private pages from the physical\n>>>> address space. This will mean that device private pages no longer have\n>>>> normal PFN and must be handled separately.\n>>>>\n>>>> Prepare for this by modifying page_vma_mapped_walk::pfn to contain flags\n>>>> as well as a PFN. Introduce a PVMW_PFN_DEVICE_PRIVATE flag to indicate\n>>>> that a page_vma_mapped_walk::pfn contains a PFN for a device private\n>>>> page.\n>>>>\n>>>> Signed-off-by: Jordan Niethe <jniethe@nvidia.com>\n>>>> Signed-off-by: Alistair Popple <apopple@nvidia.com>\n>>>> ---\n>>>> v1:\n>>>>     - Update for HMM huge page support\n>>>> v2:\n>>>>     - Move adding device_private param to check_pmd() until final patch\n>>>> ---\n>>>>    include/linux/rmap.h | 30 +++++++++++++++++++++++++++++-\n>>>>    mm/page_vma_mapped.c | 13 +++++++------\n>>>>    mm/rmap.c            |  4 ++--\n>>>>    mm/vmscan.c          |  2 +-\n>>>>    4 files changed, 39 insertions(+), 10 deletions(-)\n>>>>\n>>>> diff --git a/include/linux/rmap.h b/include/linux/rmap.h\n>>>> index daa92a58585d..57c63b6a8f65 100644\n>>>> --- a/include/linux/rmap.h\n>>>> +++ b/include/linux/rmap.h\n>>>> @@ -939,9 +939,37 @@ struct page_vma_mapped_walk {\n>>>>    \tunsigned int flags;\n>>>>    };\n>>>>\n>>>> +/* pfn is a device private offset */\n>>>> +#define PVMW_PFN_DEVICE_PRIVATE\t(1UL << 0)\n>>>> +#define PVMW_PFN_SHIFT\t\t1\n>>>> +\n>>>> +static inline unsigned long page_vma_walk_pfn(unsigned long pfn)\n>>>> +{\n>>>> +\treturn (pfn << PVMW_PFN_SHIFT);\n>>>> +}\n>>>> +\n>>>> +static inline unsigned long folio_page_vma_walk_pfn(const struct folio *folio)\n>>>> +{\n>>>> +\tif (folio_is_device_private(folio))\n>>>> +\t\treturn page_vma_walk_pfn(folio_pfn(folio)) |\n>>>> +\t\t       PVMW_PFN_DEVICE_PRIVATE;\n>>>> +\n>>>> +\treturn page_vma_walk_pfn(folio_pfn(folio));\n>>>> +}\n>>>> +\n>>>> +static inline struct page *page_vma_walk_pfn_to_page(unsigned long pvmw_pfn)\n>>>> +{\n>>>> +\treturn pfn_to_page(pvmw_pfn >> PVMW_PFN_SHIFT);\n>>>> +}\n>>>> +\n>>>> +static inline struct folio *page_vma_walk_pfn_to_folio(unsigned long pvmw_pfn)\n>>>> +{\n>>>> +\treturn page_folio(page_vma_walk_pfn_to_page(pvmw_pfn));\n>>>> +}\n>>>> +\n>>>>    #define DEFINE_FOLIO_VMA_WALK(name, _folio, _vma, _address, _flags)\t\\\n>>>>    \tstruct page_vma_mapped_walk name = {\t\t\t\t\\\n>>>> -\t\t.pfn = folio_pfn(_folio),\t\t\t\t\\\n>>>> +\t\t.pfn = folio_page_vma_walk_pfn(_folio),\t\t\t\\\n>>>>    \t\t.nr_pages = folio_nr_pages(_folio),\t\t\t\\\n>>>>    \t\t.pgoff = folio_pgoff(_folio),\t\t\t\t\\\n>>>>    \t\t.vma = _vma,\t\t\t\t\t\t\\\n>>>> diff --git a/mm/page_vma_mapped.c b/mm/page_vma_mapped.c\n>>>> index b38a1d00c971..96c525785d78 100644\n>>>> --- a/mm/page_vma_mapped.c\n>>>> +++ b/mm/page_vma_mapped.c\n>>>> @@ -129,9 +129,9 @@ static bool check_pte(struct page_vma_mapped_walk *pvmw, unsigned long pte_nr)\n>>>>    \t\tpfn = softleaf_to_pfn(entry);\n>>>>    \t}\n>>>>\n>>>> -\tif ((pfn + pte_nr - 1) < pvmw->pfn)\n>>>> +\tif ((pfn + pte_nr - 1) < (pvmw->pfn >> PVMW_PFN_SHIFT))\n>>>\n>>> Can you add a helper function for (pvmw->pfn >> PVMW_PFN_SHIFT)? It is impossible\n>>> to tell why pfn does not need >> PVMW_PFN_SHIFT.\n>>\n>> Sure, something like page_vma_walk_pfn_to_offset()?\n>>\n> \n> Just page_vma_walk_pfn(pvmw)? Since the code is comparing with pfn.\n\nSure, that works.\n\nThanks,\nJordan.\n\n> \n> Best Regards,\n> Yan, Zi","headers":{"Return-Path":"\n <linuxppc-dev+bounces-16081-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=bcS0WjQ4;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=112.213.38.117; helo=lists.ozlabs.org;\n envelope-from=linuxppc-dev+bounces-16081-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)","lists.ozlabs.org;\n arc=pass smtp.remote-ip=\"2a01:111:f403:c005::5\" 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=bcS0WjQ4;\n\tdkim-atps=neutral","lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nvidia.com\n (client-ip=2a01:111:f403:c005::5;\n helo=co1pr03cu002.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 [112.213.38.117])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dwjKJ1N2Jz1xsN\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 21 Jan 2026 09:53:06 +1100 (AEDT)","from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4dwjKG4D4fz2xrL;\n\tWed, 21 Jan 2026 09:53:06 +1100 (AEDT)","from CO1PR03CU002.outbound.protection.outlook.com\n (mail-westus2azlp170100005.outbound.protection.outlook.com\n [IPv6:2a01:111:f403:c005::5])\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 4dwjKF5dG2z2xjK\n\tfor <linuxppc-dev@lists.ozlabs.org>; Wed, 21 Jan 2026 09:53:05 +1100 (AEDT)","from DM4PR12MB9072.namprd12.prod.outlook.com (2603:10b6:8:be::6) by\n DS0PR12MB9058.namprd12.prod.outlook.com (2603:10b6:8:c6::10) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9542.9; Tue, 20 Jan 2026 22:52:38 +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.9520.011; Tue, 20 Jan 2026\n 22:52:38 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1768949586;\n\tcv=pass;\n b=S0ZmiRYOuG94lB1NI5cem+zJhex2P83ypqwFzaRX1z0vI5yUv41BEtFAuo62ffpTXFQvhmlOH3Ju+Yul3rTawqnsIkd1Km8zH2SJYKGLUIF/T7xKyneMobAB/dRwM2c6NSzGniTs6u4CS1il2j+IJom91uVjAMx3uz4VmU9KF1OaZq6wmI/v28MVrXl+XMYgvklE1f/FGsVgrFVSFdzEv92gTC1inuFNXLKQ8G3gzY7GdmKgi4Gi85FNE8VG0cdxndzf91h50J+QxY9frm80wH46SyW959lkdFr9MkjkiAeb1diDYeOKaUEb39YWBkYVWsFF+XuZ4RWAg3+Mo0sJCQ==","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=OLhfaodTiSVEpABLz9f6/AVw8plI/SHmXl42tGOq8xjC9fNwFj61fLIChyufbYYt1IspiykI8QxGToC/YxboNxhPZb7+5fRtIUSxnX/6lmNbypjFNBbngQ4OTfOsieOp9xRnbdEFZaMy654RkO+9C1m1/6jtq9VKDk5RdCbWc4WY+7QY/cU2TuShHfqsHopBAOxreLp+4n+sPvCJUpToKIsSB5kBsnq+KJR/KBYWo9ouFjYFEwm6ukkH3s03U/d+tZBth+gsNh60TDVHbDKpiy/C1K6NxPsI6wNs4kV6sWD2KoEA5Y5A9uSghFMYNqyCHTjHD7RX4GL0I3DZrFf/fQ=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1768949586; c=relaxed/relaxed;\n\tbh=HkdCRvRS5do2LXwRxjf9V0NeN7xOg5Sbh76jblZc5go=;\n\th=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To:\n\t Content-Type:MIME-Version;\n b=T+c7C513JIhcDQGzJbfAq4rqWJ6eW27nsjkoXztCpxSpqpXKpzk1Fibd1WBVsD69apadPI1ukWai7WSlGsdH/yatUsj612PYk4optxvdw9bRSswnpyOXxxB2rwuV5BGDQvkSJOYTGM+s1mUpkc5okcLZu/DvEhgNh8+IHR1QozxTpSlf74BBTFLEEvipYVKfjCZifHy4WtyfEkBPEuwzKtaoz3iEsBsIZiMBKSSJvIYpdQNCK31TPZ3biNCDHn2z2j8HhCLEVhxAD05lm80mLbkx+drUSHcBrCVu89Qrq1qHrftCEqY+tlAQOlLDBHalRQk7Qw5KkZmBx6rP2Ur9pQ==","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=HkdCRvRS5do2LXwRxjf9V0NeN7xOg5Sbh76jblZc5go=;\n b=c4tnrvGg7LgAHJuB0PqVLek17MtJaB//hlu/q9v1AqyOMX2vaToUyXJ6yUPsE7/GHQMnIxOCPCNyApHhKF7Kiod6ErYHOc5Ph74G3EQYBOiWIqwyWQZzB0Jpmq2oteUV93/yLsYI8e6SPPb3FX7lZ2Ypi6RFwoZplCC0pFRa99smX6vB2ZD19ibDLXGVXoUPWCA1mBNdDPXxtnulOrl4bugKBlaQR/o7uDzsBiZuR24BdxerDc+x0TcK5okG3PyoX0Ourl9GAyN6oIgSZfPGk6YMZa9Cd77+FBDQP+4XYtmk6aCM1YluYLpNnKgdUI7sCkcsbXimBCXvgf6ZCph/0A=="],"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=bcS0WjQ4; dkim-atps=neutral;\n spf=pass (client-ip=2a01:111:f403:c005::5;\n helo=co1pr03cu002.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=HkdCRvRS5do2LXwRxjf9V0NeN7xOg5Sbh76jblZc5go=;\n b=bcS0WjQ4/xhf0woQiQEfFY+YVZRyUXSxsvVz+LM2oPA4z7H1oYGAOEMN/2W6Ut67YsTPnuz01P9GyFskQ7RYFHB22lD2Iq1G7MSwdFQFMVNzcYqthXTR3SgLJ2NXWhMWKnIEemEVUvEYzttKzVpiSgJZk0j1+82ZdS9fKBm0ZZ9I4RGr5t4g5oq9hNB6NHMwANXlFmMf/R+uZuqmIS9TQUl9lB5O+FE5DR4dXZqJcmw8TCwHAQ+NK9WpsSD4RxsQiW/cB82xh7qgd7OMVDXuOpqOvIiwp+K2BXC4iNLvDjGr9f64AlLoIPNO2SMgIEIM1wuzm8BvoXWfN4461+txmg==","Message-ID":"<09a8d599-4612-4ee6-b71f-f2f356d4a14c@nvidia.com>","Date":"Wed, 21 Jan 2026 09:52:29 +1100","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 05/11] mm/page_vma_mapped: Add flags to\n page_vma_mapped_walk::pfn to track device private pages","To":"Zi Yan <ziy@nvidia.com>","Cc":"linux-mm@kvack.org, balbirs@nvidia.com, matthew.brost@intel.com,\n akpm@linux-foundation.org, linux-kernel@vger.kernel.org,\n dri-devel@lists.freedesktop.org, david@redhat.com, apopple@nvidia.com,\n lorenzo.stoakes@oracle.com, lyude@redhat.com, dakr@kernel.org,\n airlied@gmail.com, simona@ffwll.ch, rcampbell@nvidia.com,\n mpenttil@redhat.com, jgg@nvidia.com, willy@infradead.org,\n linuxppc-dev@lists.ozlabs.org, intel-xe@lists.freedesktop.org, jgg@ziepe.ca,\n Felix.Kuehling@amd.com","References":"<20260107091823.68974-1-jniethe@nvidia.com>\n <20260107091823.68974-6-jniethe@nvidia.com>\n <FAA66997-D211-4145-A49A-8A21E0FA0376@nvidia.com>\n <e28edba2-889c-4590-ab2c-6ff377c36f05@nvidia.com>\n <4784318E-D6AF-471B-A2E0-8B04EC0A238E@nvidia.com>","Content-Language":"en-US","From":"Jordan Niethe <jniethe@nvidia.com>","In-Reply-To":"<4784318E-D6AF-471B-A2E0-8B04EC0A238E@nvidia.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-ClientProxiedBy":"SJ0PR03CA0113.namprd03.prod.outlook.com\n (2603:10b6:a03:333::28) 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_|DS0PR12MB9058:EE_","X-MS-Office365-Filtering-Correlation-Id":"40d52bd0-3a28-4264-bab6-08de58769bfa","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;ARA:13230040|1800799024|366016|7416014|376014;","X-Microsoft-Antispam-Message-Info":"=?utf-8?q?nadmIcr4mrUs+0wh5qL3X2A6pkpR2lD?=\n\t=?utf-8?q?Ka1TKKYXHJHr2S6SBvF+6abHlZ7xF3j4nlY+J0+Q4R0pXo6oaO9QbWPJpzYBEBqt9?=\n\t=?utf-8?q?lx3pszOjR51UQcjl3o2wHBMct+1pgSe5kzxc37N1Hz7TqkO7VD9M9ap56QftGN0yn?=\n\t=?utf-8?q?0BY+hRKyop6UacBsWV3XpDfIOj6/CZ0cqZ//HlFPNKurjcV3Xx4+1pISarjnCjiAr?=\n\t=?utf-8?q?kAyunWt2+UEdPqQJR/suzpjcXJ+HgmEKR2HwDdEm170bdaY/R/vcCqAGQrrShRobl?=\n\t=?utf-8?q?4NlHOThWOUGZek1HQdCaXLQQIp/2DpxxAFqdta0zR87b2/6x9W0FrkIP803nLBYYi?=\n\t=?utf-8?q?/E1iP12KZ5CVEbogNcuiIheW1jX1DqTzWqmqKRwT5E/RDoqaqtK/6crYmqFC3H9SO?=\n\t=?utf-8?q?9IgKnRRzt7/hO4qDlBROvSdpgt8KGldHBGaknrQTNLZZ0xP0VToAQirUDbWhlkGvF?=\n\t=?utf-8?q?q0D7T79lOAtORPL6LI0upx1cRSLHUbBZwa5kL4eVPVMcVw2zEXKiC0AywwkHspWT6?=\n\t=?utf-8?q?lC4bWlNU5ystiRtKUXxLN/ZRBPO5RiwdhfnHANXIUt9RmHesieKAw//Kwzfm7qD52?=\n\t=?utf-8?q?IsSwOrCPjtlsCSk9GH0GiwVrY5zoAEcYSAGHjXG4ulc4wyenb1s+fIxkrATPWQ/se?=\n\t=?utf-8?q?DsbUvakYAhwrw0Ls9km5axdPrLkDwwtd+9y7nRxlL5nEuv5gIPjBy0N/hHjDmJ+q4?=\n\t=?utf-8?q?ln+dRDSMALRlVelYCeE/esOrFnSfGuvNNHI7I6WO5lJF2IILucVpjbexva5aZrU0n?=\n\t=?utf-8?q?rkiTJ3uLFxJ69lauC9SjEuwzyRKAgX10frzChl/ijOeTz0RKZXwu18PmgsVym9BLu?=\n\t=?utf-8?q?oY8X/t9i3gbAdsX+0RrdXwKxSEXRfp9VSqQk75w2fr8EPdC8NCFYUiZQXHIpZFgLn?=\n\t=?utf-8?q?bm9z8a0HhvcCCyLVQzOXsjE7kvzZydEtPpIulsFiUS2OUVIqenmMqlaFu4pKfHuA+?=\n\t=?utf-8?q?Ug54RqDri4XTIFMZtmTf9aF8pDtMMSW0+SKweyulQKO3MFLVsQ24fs+hGlcbtUInV?=\n\t=?utf-8?q?4fXRKH+zjcJiBo7xHi3YDT2rRVhvpjtXZIilFCePQoHDbCYj9zHFuillpF2xi6RP4?=\n\t=?utf-8?q?P+23Od7qSpPqYG1/oI9C8tn5oAoPcSHjXqmbkWcKdnIpY2a7egusQQIpMuEyDDsXb?=\n\t=?utf-8?q?l7giRSofusn0nV/lCwDQD7oPIp+gVYheHkKRbBc0ubFEUAkgEXsTz7AToF7nLVcMx?=\n\t=?utf-8?q?/rz+Nk7hy/FkXoRgUBgctoHBTgHfWjPSZqRSoRuz+eTKBKZ2zd2M4CJV0xuVLnV4u?=\n\t=?utf-8?q?vJKk6zSCrxi53+/WCCPR/H6EdrYEgIIUaCajJOm6b8MOZiCB8vrE0dcqYs+WF7DFR?=\n\t=?utf-8?q?Z3ZmQ+3vMn1h9uUM20L5l8scf0ZeKK4WncBdykzBiGRd8fyTubuwAOq54/TEmcZvK?=\n\t=?utf-8?q?T188h7DADuj/MnPFSBAcxGWZzhMhvfQsdQOblJwGaSLy4SlgGPmmHIys1AsLdR2BN?=\n\t=?utf-8?q?eAGIm+n9VTRmyy++bey9vCvjwiACE2IauLnKudFYT7yvJXlmpXpU4=3D?=","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)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?83ilPOn93gMu/IPypoBFRh6YxaWY?=\n\t=?utf-8?q?xstAHin9c4646i6JWc/xcUwvxg+P+VGHCGZa2yRpzQhp419fMr+r/kMkZOvQn7rJi?=\n\t=?utf-8?q?yZee/6kqm2jNEWExDy/j9vC8c5yDWd4O2XP3tgPiAMDRwoONWuWs3tZryQ+lSrF7f?=\n\t=?utf-8?q?gD+6Fo4MGAzzERl/GJAl4aeFXzBvjvMyOb8LhMF4qH+6e/hdeRaVb7pGsxhU+bIIC?=\n\t=?utf-8?q?zjFiVjo7E9tjiXnJyPljDrXZ9ZA5D3ob1nf+aOBPdRW+tOJFdbR313tC3uH/NwPGk?=\n\t=?utf-8?q?/2M1MwwMO7Nh88AyD5dXoV8sR8hwWUHwqzTrVNqllRtuPG23j1nDEPLv2sjCVex71?=\n\t=?utf-8?q?HfxshXPYb4Oev3GpShWr6B18UAzCX93XrlJg1r0Iew3C+d37mxrP6syhLYwk8rPjs?=\n\t=?utf-8?q?6SpxdtnrKiemGkzIqk5xJySzaAhhjXK1pqEOh7TztuPyqRxS+pdR2ZB2aH49fso45?=\n\t=?utf-8?q?tVbRX0CXuL6LNva8+MQNQw25A/TfuCA39nYsrWjxI4hJDtRfBFnbEsjUVTKSaeDJ9?=\n\t=?utf-8?q?sXtY50m++QRVxnsUH+jwTbJVnBPWiF33adOSzYHemmmkUlwvIZxHZ+rdHV8vtz6uw?=\n\t=?utf-8?q?D8GFxqaoYNbM5gSmHVq4ADF1/Wpk8Fui/LMTVf5BA4HNWLi/S+Fvk+wdI4Y26+dQS?=\n\t=?utf-8?q?76FgFm+aKV7vH/bDuEWQmS+1bOMIDSxPAg5co08pM9//7A3zHdmODEPuaEehlaqAT?=\n\t=?utf-8?q?2hQCdcGNuSib3fPOSAA3BQvpAcdQDAIawkSTKIaLkCss5b0oNbipAMDXXyQTIedzN?=\n\t=?utf-8?q?gveOMawFwH6NGSKnwM5r7igXNlFEeduk6FXZK2TenTNy6HUAsX8iaYNPODHn6Whv9?=\n\t=?utf-8?q?LEhp9DcroaIYTTY9CVEWzSdPrPsyZ6tSbU/+t9UhEli7dDoAYII+JFKq6os0rFWKW?=\n\t=?utf-8?q?pCk42fKaewuWv2S5E5gBE3jbCfVFwDuzfC60weghRCDak7oGDgQlMA/dfSFcRZNvk?=\n\t=?utf-8?q?bqWGHbl5kaB90XskGIo136vtck3peeXvHDwRXdk78oBH7MPX96t+iQH+zovHnrlCV?=\n\t=?utf-8?q?7G+OWjpEDeuVry8oY7287yAoJGDVK8Ecb0nmL842RGymCnrB1L15+1IVuuXBkPEFm?=\n\t=?utf-8?q?S4uGEgG4hoTG4oh9IGqfeaNzlVangYYGCK9pukljGn6aO2w/mXvnoFZBotq9lP+Mi?=\n\t=?utf-8?q?rA4JEwF14R8EZ6IGjBMvvDPWwKwaqVdSj7f1fkCd/+mPhxSSlc+BrbXCoTBWP0QCK?=\n\t=?utf-8?q?SCTxbdtUrweX9JrgWqj+OTKnb1V1BWGQoXd8QTXq6i9hJq2hZhspgS0av1qj4q8Wm?=\n\t=?utf-8?q?ZTiXqvV7MLZ1FdY9W96BjEw69ryvm+YqygXtifXmYv8XtrpYsxhICnZHXQc3kqSA+?=\n\t=?utf-8?q?uVMtfOvWFSKMqJw9i5IY4xzKgSIqv/Ow1PyXm9p4hfpu8uoh893f8OTuV9DFnMdN9?=\n\t=?utf-8?q?KkECg3wnPmW9fp+2AnX/tyJoY/jFS+bOa+nq6jfo6E7tcOGckk5F24Gpr90JdHol0?=\n\t=?utf-8?q?4q/So4PFYPmZLvRyHjR//+a76XlLd/OKexaQqXNJFhZfkJHJxcD2DD/hULNPxC9CD?=\n\t=?utf-8?q?c2jscoTQbsYcTn5LyivgdUHOVsEektmszoCMOs2kilaNM9p3RpUUZv2PKk6gNZq/5?=\n\t=?utf-8?q?5b5cKDcu1tUQ/TvQziZMAXyUF+8L7210aWm73OgyoBzIaUtnmMZ5x2tt/5rKcqNES?=\n\t=?utf-8?q?UiXiYH3+osn3/WdZeijkJiP8oCpfT1xw=3D=3D?=","X-OriginatorOrg":"Nvidia.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 40d52bd0-3a28-4264-bab6-08de58769bfa","X-MS-Exchange-CrossTenant-AuthSource":"DM4PR12MB9072.namprd12.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"20 Jan 2026 22:52:38.0798\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 6SJvfEMRlA/jbIWJXuo9TeP1MeQgQmZ9QuTC5mWfGG3gED4Z6STedNhsXwRzTdOfeYdPfSzBYKfh0ceH2l+Nrg==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"DS0PR12MB9058","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\tSPF_HELO_PASS,SPF_PASS autolearn=disabled version=4.0.1 OzLabs 8","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org"}}]