[{"id":3634169,"web_url":"http://patchwork.ozlabs.org/comment/3634169/","msgid":"<375f5d20-7c15-4f8e-a9cd-c58e3e398c62@nvidia.com>","date":"2026-01-12T01:00:07","subject":"Re: [PATCH v2 07/11] mm: Add a new swap type for migration entries of\n device private pages","submitter":{"id":92354,"url":"http://patchwork.ozlabs.org/api/people/92354/","name":"Jordan Niethe","email":"jniethe@nvidia.com"},"content":"Hi,\n\nI am copying across this discussion that occurred on a resend of this \nseries on the intel-xe list for a wider audience [0].\n\n[0] \nhttps://lore.kernel.org/all/8bf680f0-94ed-4614-9ace-a081a6558460@nvidia.com/\n\nOn 9/1/26 06:08, Lorenzo Stoakes wrote:\n\n >> @@ -28,6 +28,9 @@ enum softleaf_type {\n >>       SOFTLEAF_DEVICE_PRIVATE_READ,\n >>       SOFTLEAF_DEVICE_PRIVATE_WRITE,\n >>       SOFTLEAF_DEVICE_EXCLUSIVE,\n >> +    SOFTLEAF_MIGRATION_DEVICE_READ,\n >> +    SOFTLEAF_MIGRATION_DEVICE_READ_EXCLUSIVE,\n >> +    SOFTLEAF_MIGRATION_DEVICE_WRITE,\n >\n > I think these should be SOFTLEAF_MIGRATION_DEVICE_PRIVATE_xxx\n >\n > And I realise that's a mouthful 🙂\n >\n > But to be consistent with other naming, including \nSOFTLEAF_DEVICE_PRIVATE_*.\n\nSure.\n\n >\n >\n > I don't see any users of this, do you definitely use it? I mean \npresumably you\n > might in a subsequent patch, not checked.\n >\n > Otherwise I'd wrap it into softleaf_is_migration().\n\nIt gets used in the final patch of the series when we begin doing things \nlike:\n\nstatic inline struct page *softleaf_to_page(softleaf_t entry)\n{\n     struct page *page;\n\n     if (softleaf_is_migration_device_private(entry) ||\n         softleaf_is_device_private(entry))\n         page = device_private_entry_to_page(entry);\n     else\n         page = pfn_to_page(softleaf_to_pfn(entry));\n\n\n >\n >>\n >>   /**\n >> @@ -211,7 +279,8 @@ static inline bool \nsoftleaf_is_migration_write(softleaf_t entry)\n >>    */\n >>   static inline bool softleaf_is_migration_read(softleaf_t entry)\n >>   {\n >\n > For these ones that you are making sort of compound now, can you \nplease update\n > the kdoc to reflect it? You've done it for others but not this one.\n >\n\nSure, sorry I missed this one.\n\n >> -    return softleaf_type(entry) == SOFTLEAF_MIGRATION_READ;\n >> +    return softleaf_type(entry) == SOFTLEAF_MIGRATION_READ ||\n >> +           softleaf_is_migration_device_private_read(entry);\n >>   }\n >>\n >>   /**\n >> @@ -219,12 +288,13 @@ static inline bool \nsoftleaf_is_migration_read(softleaf_t entry)\n >>    * readable migration entry?\n >>    * @entry: Leaf entry.\n >>    *\n >> - * Returns: true if the leaf entry is an exclusive readable \nmigration entry,\n >> - * otherwise false.\n >> + * Returns: true if the leaf entry is an exclusive readable \nmigration entry or\n >> + * exclusive readable device private migration entry, otherwise false.\n >>    */\n >>   static inline bool softleaf_is_migration_read_exclusive(softleaf_t \nentry)\n >>   {\n >> -    return softleaf_type(entry) == SOFTLEAF_MIGRATION_READ_EXCLUSIVE;\n >> +    return softleaf_type(entry) == SOFTLEAF_MIGRATION_READ_EXCLUSIVE ||\n >> +           softleaf_is_migration_device_private_read_exclusive(entry);\n >>   }\n >>\n >>   /**\n >> @@ -241,7 +311,7 @@ static inline bool \nsoftleaf_is_migration(softleaf_t entry)\n >>       case SOFTLEAF_MIGRATION_WRITE:\n >>           return true;\n >>       default:\n >> -        return false;\n >> +        return softleaf_is_migration_device_private(entry);\n >>       }\n >>   }\n >\n > So all of these above ^^^ are making it so you can't determine if an \nentry is\n > 'migration xxx' vs. 'migration xxx device private'. Is this ok?\n >\n > Does anything need to exclusively determine if something is a 'migration\n > xxx'?\n >\n > If not then fine, but just wanted to check.\n\nThe new entry types have the following relationship:\n\nSOFTLEAF_MIGRATION_DEVICE_READ is-a SOFTLEAF_MIGRATION_READ\nSOFTLEAF_MIGRATION_READ !is-a SOFTLEAF_MIGRATION_DEVICE_READ\n\nSo it is remains possible the distinguish the types using the\nsoftleaf_is_migration_device_private_read() check\n\nIn practice, the only reason for introducing this new type is so we know \nwhen\nwe can not call pfn_to_page() on the swap entry offset. That is the only \ntime\nthat the difference matters.\n\nRather than introducing a new type we could accomplish this by adding a new\nflag like SWP_MIG_DIRTY, SWP_MIG_YOUNG but my concern was how we handle the\n!migration_entry_supports_ad() case.\n\n\n >\n >>\n >> diff --git a/include/linux/swap.h b/include/linux/swap.h\n >> index 38ca3df68716..c15e3b3067cd 100644\n >> --- a/include/linux/swap.h\n >> +++ b/include/linux/swap.h\n >> @@ -74,12 +74,18 @@ static inline int current_is_kswapd(void)\n >>    *\n >>    * When a page is mapped by the device for exclusive access we set \nthe CPU page\n >>    * table entries to a special SWP_DEVICE_EXCLUSIVE entry.\n >> + *\n >> + * Because device private pages do not use regular PFNs, special \nmigration\n >> + * entries are also needed.\n >>    */\n >>   #ifdef CONFIG_DEVICE_PRIVATE\n >> -#define SWP_DEVICE_NUM 3\n >> +#define SWP_DEVICE_NUM 6\n >>   #define SWP_DEVICE_WRITE \n(MAX_SWAPFILES+SWP_HWPOISON_NUM+SWP_MIGRATION_NUM)\n >>   #define SWP_DEVICE_READ \n(MAX_SWAPFILES+SWP_HWPOISON_NUM+SWP_MIGRATION_NUM+1)\n >>   #define SWP_DEVICE_EXCLUSIVE \n(MAX_SWAPFILES+SWP_HWPOISON_NUM+SWP_MIGRATION_NUM+2)\n >> +#define SWP_MIGRATION_DEVICE_READ \n(MAX_SWAPFILES+SWP_HWPOISON_NUM+SWP_MIGRATION_NUM+3)\n >> +#define SWP_MIGRATION_DEVICE_READ_EXCLUSIVE \n(MAX_SWAPFILES+SWP_HWPOISON_NUM+SWP_MIGRATION_NUM+4)\n >> +#define SWP_MIGRATION_DEVICE_WRITE \n(MAX_SWAPFILES+SWP_HWPOISON_NUM+SWP_MIGRATION_NUM+5)\n >\n > I've lost track on how many entries we have left, have you tested \nthis with a\n > config that maximises the number?\n\nGood point - let me double check that.\n\n >\n > I really hate how we do this by the way, that's another thing to \nfix... 🙂\n >\n >>   #else\n >>   #define SWP_DEVICE_NUM 0\n >>   #endif\n >> diff --git a/include/linux/swapops.h b/include/linux/swapops.h\n >> index a9ad997bd5ec..bae76d3831fb 100644\n >> --- a/include/linux/swapops.h\n >> +++ b/include/linux/swapops.h\n >\n > Since this is pure softleaf stuff can we please put it all in \nleafops.h if\n > possible? I know we already have some stuff here rather than there, \nbut this\n > really doesn't seem to belong here.\n\nThe reason for adding the swapops.h entries to correspond with the softleaf\nentries was it looked like the swapops were still required for making\nthe entries currently.\n\nThat is, there aren't softleaf equivalents to\nmake_readable_device_private_entry() and friends yet.\n\nWould it be better if I introduced the swapops.h changes in a proceeding \npatch?\n\n >\n >\n > Cheers, Lorenzo\n\nThanks for reviewing.\n\nJordan.","headers":{"Return-Path":"\n <linuxppc-dev+bounces-15526-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=FOWrlhCe;\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-15526-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)","lists.ozlabs.org;\n arc=pass smtp.remote-ip=52.101.46.30 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=FOWrlhCe;\n\tdkim-atps=neutral","lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nvidia.com\n (client-ip=52.101.46.30; 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\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 4dqDb26T92z1xpk\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 12 Jan 2026 12:01:02 +1100 (AEDT)","from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4dqDb22jTHz2yFK;\n\tMon, 12 Jan 2026 12:01:02 +1100 (AEDT)","from CO1PR03CU002.outbound.protection.outlook.com\n (mail-westus2azon11010030.outbound.protection.outlook.com [52.101.46.30])\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 4dqDb12gsPz2xS5\n\tfor <linuxppc-dev@lists.ozlabs.org>; Mon, 12 Jan 2026 12:01:00 +1100 (AEDT)","from DM4PR12MB9072.namprd12.prod.outlook.com (2603:10b6:8:be::6) by\n PH8PR12MB6674.namprd12.prod.outlook.com (2603:10b6:510:1c1::18) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.7; Mon, 12 Jan\n 2026 01:00:18 +0000","from DM4PR12MB9072.namprd12.prod.outlook.com\n ([fe80::9e49:782:8e98:1ff1]) by DM4PR12MB9072.namprd12.prod.outlook.com\n ([fe80::9e49:782:8e98:1ff1%5]) with mapi id 15.20.9499.005; Mon, 12 Jan 2026\n 01:00:17 +0000"],"ARC-Seal":["i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1768179662;\n\tcv=pass;\n b=emXuR2xku9J5r3QUkv+mk2qt0vW6cAoZq7ijrPAhMZP9IX5QqWcqltlaoXkSaL1ejF8EKofE5FNhaFr2TpJCsPkhGauM8zWk1QY/NR6GYodEwI+GDh4QrVptvodaZb5WqQTrfiHjJmi+w5GRMqpBomCI/EfvQEo2GqFMIN1Tr2Xz3lUFsFjd72sUl0E0kCGdsIXJuAoaWAJvQTzrErxbUY2Pfx/tS5y4mM40LDo7vS67bXiviZXlJwMrtP9Y2o1Wx7AAOr8/ELFLapAYeOusTOsI9sO/dF3NYGJiHsbNn0Rgs50JhOr72Xgrjdlm+8r9NelsJxAd1IdK2/k2QOgOLw==","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=EMfoF4MJD3TLgH1fHCz1Oat+LISY5SM+gvm0XdebW3yRXrsFv5f6f9XtjPmYVABOUBsncH65xgu/eGn37eCFMj1dSYc3nCSj4RXzjnD2LgvMLkmDVSapolHcrAtv+NRqZVDoBkz60u4eyHSLtWnMPsrV31AsnBh52J021+g0gacDWel4FX92AA1GFMFCJUStCjPrcIXypQmmcqv0pYO+8n9wdzDkKB3xbje/7yyk3w5nA2WBIWH+AfglbWbbEqrZiMyFaTdo1d6z89H1LOk7a/DAZUWwpfeEkL0PS+UdopwbCZIncq3q/LTm5AJMZRBEk1YXNYvdn99Ux2Bjfgrz9g=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1768179662; c=relaxed/relaxed;\n\tbh=r+meQ6zbdYPWRMSc2n+22RHDs+DG44QvVuLeQb0l3NY=;\n\th=Message-ID:Date:Subject:From:To:Cc:References:In-Reply-To:\n\t Content-Type:MIME-Version;\n b=nnP9rMACSmKl5VXq6R4+YUPMAJ+plEF3G0Edi/jqnQtlXf8elwt3JEmIXkkCneSAsmDj0/YdXdb8uDwWGQPZvwH5Baqu4EnRjxwc+1JHHxdjKDI+E2tAhoU5GBXtPC6s3FbDGR8uWbs1NdFYy8mqtBkwdFnSMXk2AXZpi2J/59TopcEvlvDJV394yG+zvbnq6ea1jqy64Vb3xHFUjTVGgWsm5mjr7Aga/VUNOJ8x0SDjNrWOG57H4GVYqcUEwqdfYOmhu742SDSPMt1Gx/4B6qO+Hxw+vjsEJgD25acx7+Q42G7vWttNBJlqhZp8fehnlzr5qxAzqja0svOq/GGxag==","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=r+meQ6zbdYPWRMSc2n+22RHDs+DG44QvVuLeQb0l3NY=;\n b=oya1nJy5qNlI3UV8huCKm5d2G0JRZ0nDyMQ8Gw7W0zPpXuh7aBy0VknKsglBG5uji/nh3lYfKGt5WlD50doDHxYzVMvbZ+eUmzRZ1ZKPGE+F9nQoCsSbVZAgWH4JtyANUEVDVGBYlcPpMIxef9jx2dIYxOgepg4tzw+6K24/uSC8kOwFBBaokCcu08WgSNmEvbVPKvot8VqK/W99bXa3r68gu0WHv3HSMs5bfJNNU1wzdGtK4lM6gInu5lYjG369WkIszsaPv4wQDmKwJCvkCxLjtqCuk8QhA2pioFCu21Lcsa5PiOZdYjA80LlXWj/k7MAalqtw+M5kEBUaVCnbaw=="],"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=FOWrlhCe; dkim-atps=neutral;\n spf=pass (client-ip=52.101.46.30;\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=r+meQ6zbdYPWRMSc2n+22RHDs+DG44QvVuLeQb0l3NY=;\n b=FOWrlhCeZLekaGr0TnY15KjY0xR5ssRpLoQqT8q5ZWFAcoFilswbb8qeKqp7YiqtF+VpQa6Ormr+8sBv4rjyuym7ZVQHuhQSF14dGF25QsLozsSfcNNX2DK/+jxKiygq95T6EubG12HDovD9RsyXT4pcydvjkd1uahkBAAY+c1UGHzLiJu1Vb2KrYHGJn5mpk2oiOixfI7n56fn00xmCjkDelKWXDmhyTKxv1aV0rHS9JSWBe350Im5GhKyFhsnFug4y0l3sZHk0ivSBnXWAhenUWxOUo7rKQ1Q0379h5ifPUe4SkqG5fA8kJEs/XOCYvmPvNkYVu37yC0gOAFCWfQ==","Message-ID":"<375f5d20-7c15-4f8e-a9cd-c58e3e398c62@nvidia.com>","Date":"Mon, 12 Jan 2026 12:00:07 +1100","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 07/11] mm: Add a new swap type for migration entries of\n device private pages","From":"Jordan Niethe <jniethe@nvidia.com>","To":"linux-mm@kvack.org","Cc":"balbirs@nvidia.com, matthew.brost@intel.com, akpm@linux-foundation.org,\n linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,\n david@redhat.com, ziy@nvidia.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-8-jniethe@nvidia.com>","Content-Language":"en-US","In-Reply-To":"<20260107091823.68974-8-jniethe@nvidia.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","X-ClientProxiedBy":"SJ0PR13CA0196.namprd13.prod.outlook.com\n (2603:10b6:a03:2c3::21) 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_|PH8PR12MB6674:EE_","X-MS-Office365-Filtering-Correlation-Id":"17eb325d-e198-4dca-e597-08de5175f3d1","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;ARA:13230040|366016|376014|7416014|1800799024;","X-Microsoft-Antispam-Message-Info":"=?utf-8?q?QtpivOtxitlZYKtmI3/X+rAmwFYjQtQ?=\n\t=?utf-8?q?bL3m7WH6KZQnAce5e+mGgqXInwTr+8mvm2cyzgaD02joiboh4FN5SzMJuN1j01fx9?=\n\t=?utf-8?q?X3GSuYcX+U/DTr4ksEFsXIMu066vde0VFLirSeKopsFjtkEQs4JlmEpg/UZbZms94?=\n\t=?utf-8?q?1+yZ+rynma+QOerhh+Zz8JubR8jpMkM0rR2QWoz9bneLntWld63248WZXBQTYi2te?=\n\t=?utf-8?q?UFIxRwx0o2BeRCGWB8FGx26Pf4DGSos59gzBi+NTa/a8zY4b2PMs2uVE1hbKr9hrI?=\n\t=?utf-8?q?zogYBXBMZT6Z2VmUdB9e++QvwCAgQEsd0ZRZBRN05LVBPv63jNoEVg85OXsUHpdL9?=\n\t=?utf-8?q?ieQvMcLaL4tBMlEzr4xvAMSqqYzz6K/bzGdQL3Ydz/e2k997Bq76tO/jjJT6EeJcr?=\n\t=?utf-8?q?0HCqpSKDxeTGkcKk78WHo3LyMSzlPSsABYiJ9oW9aZpbgALSObYqZVaRdNyyjoUpF?=\n\t=?utf-8?q?/FqpDhJHK1vE1lTDpHIS4ld7bjoiIXfiS93KEWZonuUE4W2BxJhM5j8Zd52HurP8I?=\n\t=?utf-8?q?f75MwtOFnGFZB2P62HGj7MOzi4DR8Ur8FX2ruk3FPY78dkA9IxkjiQOzcYc5efdsy?=\n\t=?utf-8?q?RaHeqcC5+3CBniiMGOT/qWev2fhXwD3NC4h65jbyZRaSs7OaHMwER6X8hJEpUTxTh?=\n\t=?utf-8?q?R+Xx9NNVGg63BCC+C0Z9U3hU5TsZ8ks4MEdwdkqzRygnczAmIcSxaQJkmiUnAVBKT?=\n\t=?utf-8?q?kPCisHniz6rPvkojDVfnadHxrHHIufnLRG55ZH3O5WUVrJ+yKYTE1ArYV4RR/S0ui?=\n\t=?utf-8?q?4iz6tGVsaVhGWAt1l4ZnrCnxWYa4h8y+qQob+iseGQciAPAEgNHJVg7GuHYoEtqkH?=\n\t=?utf-8?q?+ksF6PSs6MYl8Rl00oBvvZUHXEEojhzH2AZFl4eiaTuhvmTEr6DFScvUXmHBbR/7e?=\n\t=?utf-8?q?OBSR3SnlAlKNm0PTCp/pqdTYmt6rtbJ6mqRR7ZJzts019aDMi79xRH8i0vM3RMzfC?=\n\t=?utf-8?q?D4o57ABRyHEpcDooBMVEo2AZS2CHfMuX5Bzc4yOztP3V463Kp3+MSbbPuTioTBSAn?=\n\t=?utf-8?q?9XdEK/4Ny+WlrN629V67zK0UQG5QRQROiY+kyQPKhbuaqy5LQ+odNAg11AZNP8gMv?=\n\t=?utf-8?q?mF/d0m3+/+4hYlZL05PHLpE94ycDFU9wxVqrF8KXbnakc4wz7C/Rq3zmpEeQOa3hy?=\n\t=?utf-8?q?NHXpfsvKfqisPTPy/F5E56F5xKkrH452VhvicGtpMtTjBzkz9IF7NQCqJxAcVpK6D?=\n\t=?utf-8?q?7onVoBn8ud55ufGsXbJWz1Z1UEOvQk/VK8S4tpHCFCSAPZj03JxUJqvAZgA9mLhTC?=\n\t=?utf-8?q?7XajFbyFzz5845b82bSGu2j9+wta/Smb1t1u3IgPPDF9qYyYa25pKvfwYX6HZwYEp?=\n\t=?utf-8?q?V3Pqr2P+FWqKkcWLibV56CMnEOwWVArAF50R6ZiMvR3A34yT/z7KKVersp9HImsiE?=\n\t=?utf-8?q?hDjMHzN5dWnXgKznC6OMRb9/n1f4qoDRg=3D=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)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?GMkehf+KzHWArFwuMl6sLdR07fzM?=\n\t=?utf-8?q?nJ82j53ZOQY54tk5PO0VIz8H/CcuXlFBqhh42RYIir3ws3hhHxAjxhbmgyH1sVFg2?=\n\t=?utf-8?q?k94hlRtKmosoz/VI7yWW41VGYl3qGKlz6gClE5V74Sr3B20TQYFXnumu5VdQI/96l?=\n\t=?utf-8?q?mk4D3ENft1KYGRUBAbhBael/eHnhUcKGKUTB4SAWrghCmRw3AmEK+TDjktbEoPhNV?=\n\t=?utf-8?q?o/+TTYRbOVl6wwdL6K/SyucI8vlzt2lbEWWxJlW4FYMkh2BXo5Vspks5IjyIHDQbx?=\n\t=?utf-8?q?BNdaDsckzhLN5cUzc/NwrdJXwdNmB7GTiPnhMHnpU1EqhjMaKqKYFOzx614Kf0HWj?=\n\t=?utf-8?q?Bu27vSRJBDQXm2UtzFMRxY+G8k469l5ocnX7Igle/MGf0f6vTdiD7tGqMuM7IaQs/?=\n\t=?utf-8?q?k5VFlXz9ehivZgY1XPeeRCBe3XSU1613XC3FkfbRgnG7BYXWkMFcSj4jgwyFUaJSN?=\n\t=?utf-8?q?UEAJ8D0bOIWcRh+X7x9PYdEa0L5P6ODi4psI0pdCdn91ct2cCTK/kxlz/6yNuDZiz?=\n\t=?utf-8?q?uiG9uiWaD5eLMsKCaQWwrHzGVSRYsUnrtL+FPEwM/yiB8E6/1wf+Eu8+JJC15RjLs?=\n\t=?utf-8?q?JD3GT2dc4kusZ5zoA7Qz+lfJpELB98oYckwPPOn3pgrrM1YF+4obncY6dYpVOAuzH?=\n\t=?utf-8?q?66K+ME6+RUBKRej154/DMFviwMIK8L2BVXDK2WwjYLRmnK9m3rcXYdtKW1AIn+odC?=\n\t=?utf-8?q?0tQE8NnNS992pkCAaJ3r+hz/Ba1QWHE1VeVan1uQlnoQOy7UyKkbYXm/9uzLyRpG1?=\n\t=?utf-8?q?nkGvvTS4l/6+Esw4TXlX5pnNpsrGdHqQqLHb+mStftxdGtummcTKcVRr+krO56INZ?=\n\t=?utf-8?q?4kTKNu8CE09OHOXtEm9smaXaN437EIBsi6r3ZogxOSzJPR09YN50L109tEp5YzAzA?=\n\t=?utf-8?q?t64CaDq5x5n4zMc4Rc4To3eKUGJArHePLc/hW98ZcR1Un9XAEqqTs1lG0gPjpX6cl?=\n\t=?utf-8?q?yImvGUf0BQldvomXsF7MzfI+K+1VeTcbYSnXyXHbzHYPW1VfaVx2z+QQkS1IsmJXg?=\n\t=?utf-8?q?Jdq4+fTg4MpRoofAnDx/CTpqm2YJP3SRRjydmkvVKwv+qE1tDsAHpOcemqvz81BeP?=\n\t=?utf-8?q?2nn9PAxY8vzcWdrHmcMmvzR25aDDAtrhZqM+W99MQg3PrKWBBWyW5G39qWSqdnB3f?=\n\t=?utf-8?q?X+DTVDUXVcWIWWZI6f4yJl0lhoGfChL7etlqoVOf7+OM5UdGt86yfUGF11dvAzWe2?=\n\t=?utf-8?q?dvegzjSqUSIKbcAQK4kDzR5Md/zCO0sXLr3VkFIwgpdT72zQv6zEoWBp8+hS4x6Gk?=\n\t=?utf-8?q?213BRVOLS4v/T3WTSCTnoR5R+q/KKy8t80bX0nhHCOkFZZbQuT0/x8mYE9AUZtrhM?=\n\t=?utf-8?q?LHP3VbXCJ2Oi2SRmgYGQgWGtCWKcdTSY+3TT6FOcka+OcW5/i7leEzd9DrPq+ZOi5?=\n\t=?utf-8?q?cCtl+g3+2ZoJRBJJEngVe0p7h1jNffLhM7VIS9GLbMlwQInSsLOdl4Dxdnb0ZjRby?=\n\t=?utf-8?q?ap5+yE0kl685mHDu5ogdP9BmbwydCXZ4ApBCGQaMrokY0I0EbuMLyGQ2aA8lT/hNg?=\n\t=?utf-8?q?RD6NZ/XUNNS5eRnXIWJix8l+zqF0SFXiCGFiag5FRrWLzime8iz4QLh+BZq4D82hr?=\n\t=?utf-8?q?+2R1zIiV5CgEo0+7CoBXVDfT5Ok9ex/thalevbEMLFCLtzBMQcOPYi/+R2HpG4CWH?=\n\t=?utf-8?q?/xMD2ut0y7M/NUbLbeT0qsdZ6XuMc1oA=3D=3D?=","X-OriginatorOrg":"Nvidia.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 17eb325d-e198-4dca-e597-08de5175f3d1","X-MS-Exchange-CrossTenant-AuthSource":"DM4PR12MB9072.namprd12.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"12 Jan 2026 01:00:17.8202\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 rYFbfUWO29eH7n1Uyfx2wP5aGqrcS4CIMy/VQKEqGNv//Hsy/SXtsO9w0uE+pkaxBEC/9IuySeT2v469xf4vAQ==","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"PH8PR12MB6674","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_MSPIKE_H2,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"}}]