From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0A8E8C3600C for ; Thu, 3 Apr 2025 16:10:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E1EB6280003; Thu, 3 Apr 2025 12:10:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DCD16280001; Thu, 3 Apr 2025 12:10:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C1DD3280003; Thu, 3 Apr 2025 12:10:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 9DF76280001 for ; Thu, 3 Apr 2025 12:10:10 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id BB635160D11 for ; Thu, 3 Apr 2025 16:10:10 +0000 (UTC) X-FDA: 83293219380.16.3D44B8A Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2055.outbound.protection.outlook.com [40.107.92.55]) by imf11.hostedemail.com (Postfix) with ESMTP id EC9E040018 for ; Thu, 3 Apr 2025 16:10:07 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=K+9U3XOx; spf=pass (imf11.hostedemail.com: domain of jgg@nvidia.com designates 40.107.92.55 as permitted sender) smtp.mailfrom=jgg@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743696608; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=dy8Ws2qvwF9s55c8ff5LGR1nvZuXfJj+iEpUvr3iHP8=; b=mniv2Kz6Bz8pNPjiGX33Ny2Xpt2QQ/P/5gTek+2rTgov57kEFFOxrK0CSv2L7iP3Yb85z0 6v+sV8d68/fAQbrTzSgJl76Ajm3sYLqI4aMzrrg9Z/L3br0uFTnITJMC3IANtSJk7UGEmW t3zfkeqvPiFj2a1BbL592BZrNMsStSc= ARC-Authentication-Results: i=2; imf11.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=K+9U3XOx; spf=pass (imf11.hostedemail.com: domain of jgg@nvidia.com designates 40.107.92.55 as permitted sender) smtp.mailfrom=jgg@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1743696608; a=rsa-sha256; cv=pass; b=l0tXxEGoW3r8PTEwSjIYPnN5ikHei01/bkLgmcupx38gbr1L4q1KcKzCWN3syoOoe3r4Ny AJ/DZ8k5PoForBy/xcs4JH3Qq/QnV/DIOK4jsTeHsrjSAVqJBn2TLMmzZoUh8rWKRFLsFs nfx9r896NxNFKa868fRZ/nVUSlaOxys= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xKKX6EYc0hA9kJa4m6lx+0AQdSapH5/NP8r8Xu14UA/xaMmFPqVyEINCa1JW6/gVECAyZ59IXmKmESwljBTxp4zJvdBcYdgpR5fHpaNAc0H35LYUsxVfd1roCbIDDnBLvVc/E+uWgCAC85OtRPoAw3QyOvPum+iugHuY23cb2OUdNYT2ow8NukMrqDDDzRYdFcLtH7Wscxlf22xeuEdeG4Mmc2zANzoHGBQdRFwKNBrwDIyQs6ZRouLehlHqD1asWAxPZww1RKX4Vz8dLuiLjbzASMoPcZyccaxaFaHG4qjpMaMY7W99tixR24IZROc6tUPhan2xbNJ1kV1+omSIXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dy8Ws2qvwF9s55c8ff5LGR1nvZuXfJj+iEpUvr3iHP8=; b=XVrTWp9WMKoQTSbFqUDeChQHITxwVy2wQZRtYjX22bntc/A03sZA1pyjhWMOH+kMd/LMOxIjMXcGIe0WbgeKQEIEPIsWp10GjJEGzfYVDvb4fGme1m4U9RGTelkdgSK8NMqNRAU+PZl1Q3fdyKIsgRYCG/zitSr0B3LQvMZVrLR+9AJ+rDHwIzeZxll/oTRzhSgBPqNVme5lXcG+kBy1eM8fsCirIG8eYH7HFxzVCb0+MT0hIbU27YcSFlBMDywJEulCi6H2IjpCCwgKWELwJEJgvX/T9nIKk0r+BRuv9O5grWFaY1cYMh1hDerwcfD30s9UaVP+Jl4BBNhRu5j78g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dy8Ws2qvwF9s55c8ff5LGR1nvZuXfJj+iEpUvr3iHP8=; b=K+9U3XOxJQAtXib9UDfN3h9WU6WSBdjRQeu5p+LsPlPdqaKYaqoP1cRZKmChrwIW1Tlwpl5J18pdgL7xevx2FWAz4gZupsME09ey03WXfDRJZOKRHVlKqT1/hfNP1zSLIfBp0VJ1HDUeSVFyMbAJJwm4mCTeX9trhGqyysW7jv2G1D/uFsL0xGPv7A39mWh+2YZz5lrA975FYWvRMS/BS59ljbRfFY1j/UvPPgxWILW6ciqw2YwXCrU4L9zJPEm9TF8T6EmsSj5eZbXaVvJQnawnv8GqMTT5FHEGIk41g2BrhB9LR0jtii0FsZSaiBiPK2r/HW5qgzF8IwKS3kNbNQ== Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13) by PH7PR12MB9253.namprd12.prod.outlook.com (2603:10b6:510:30d::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.42; Thu, 3 Apr 2025 16:10:03 +0000 Received: from CH3PR12MB8659.namprd12.prod.outlook.com ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.8534.043; Thu, 3 Apr 2025 16:10:03 +0000 Date: Thu, 3 Apr 2025 13:10:01 -0300 From: Jason Gunthorpe To: Pratyush Yadav Cc: Changyuan Lyu , linux-kernel@vger.kernel.org, graf@amazon.com, akpm@linux-foundation.org, luto@kernel.org, anthony.yznaga@oracle.com, arnd@arndb.de, ashish.kalra@amd.com, benh@kernel.crashing.org, bp@alien8.de, catalin.marinas@arm.com, dave.hansen@linux.intel.com, dwmw2@infradead.org, ebiederm@xmission.com, mingo@redhat.com, jgowans@amazon.com, corbet@lwn.net, krzk@kernel.org, rppt@kernel.org, mark.rutland@arm.com, pbonzini@redhat.com, pasha.tatashin@soleen.com, hpa@zytor.com, peterz@infradead.org, robh+dt@kernel.org, robh@kernel.org, saravanak@google.com, skinsburskii@linux.microsoft.com, rostedt@goodmis.org, tglx@linutronix.de, thomas.lendacky@amd.com, usama.arif@bytedance.com, will@kernel.org, devicetree@vger.kernel.org, kexec@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org Subject: Re: [PATCH v5 09/16] kexec: enable KHO support for memory preservation Message-ID: <20250403161001.GG342109@nvidia.com> References: <20250320015551.2157511-1-changyuanl@google.com> <20250320015551.2157511-10-changyuanl@google.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: BN0PR04CA0096.namprd04.prod.outlook.com (2603:10b6:408:ec::11) To CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|PH7PR12MB9253:EE_ X-MS-Office365-Filtering-Correlation-Id: 545da9a3-d28c-4e8b-036f-08dd72c9fe08 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?BpY+mpHuciQ+ZD4C1BSvxRtkUCtdOXLa/ZT/epv+Ki/VmAC+038OVdLJD2/h?= =?us-ascii?Q?rKg1IhHjoGBMb5VWu6YrEhkh5gqXgoCcV/l2V/lgeYbh1u5Eu0V5rv/PB554?= =?us-ascii?Q?RiO4Mq0B5vZpklTdl/B3qeo1mPOU2FQBy7B3vj+wy5cf+hjBOJQlZF6snoBQ?= =?us-ascii?Q?mPZ7AydKLLYdbHJB17sgQJ1hbxn7Tqnk138zG+4ta8Tb/PGaSOTaSqf0gmqg?= =?us-ascii?Q?zKXAghqimGBIIcmUXuisnvEpHwc9mKtEDxDeBne/TkwkwJOMoiWZGP4P0G89?= =?us-ascii?Q?LVTYaHQ/BH7ChakdjOHulLD1BTeWrjkqap6cCidQomheUWYpiGuWbhGGyNli?= =?us-ascii?Q?gpSBE3xqGyAhrzhHuhAcFtblaZ//RuyzOK4DmHbm0gwoESX2D31xViF4Hvkz?= =?us-ascii?Q?2/Y2rwgxuczO7u5PD2j2bbSo+05GaUr7Z+ymi5tRTcblP5FxrbbYZ2CJhqRz?= =?us-ascii?Q?w1nrVuYroOhF56o+X57U+vmXpooOiO/eZL8Uddy37zrOsWYWC61U8J2gvPSv?= =?us-ascii?Q?mcBsnRVxD6VpqV+XMANF/lnGITphbyEymzTtAHti7XxOUYnGvlYWvDipouoR?= =?us-ascii?Q?94SLkbEgzz+t2xPiLUplM8WlrEoJrInhZ6jqmYb9s6Vf4EjkVgNHVa6LPEBX?= =?us-ascii?Q?EbGFBdSYW9bgJ2djOGAuMG6IPztAGD8D4GiICXjZOhV339EyetvoPLj1zgsg?= =?us-ascii?Q?+I5yHsZ+GTvL9N+F/pU9S89ugO6WzoCL0UdnKKEdKPZCLuhRnr8jF5cO2Ti+?= =?us-ascii?Q?UZTarhksFss10JU0fqArXTjZI5vhhaHu1buGHyYo05CyyUVyxeQrxon4dNeq?= =?us-ascii?Q?vN2KHYLQ1zv2ZbabefclscrctxOskuxzKe35JZxMn+NofU2of8WxdB89/jO4?= =?us-ascii?Q?t+4/MLFoWoG89Wavqd2yoiTHYgRh6VVyiCeZ6KgsvAqidCl6ogYTke6nPufl?= =?us-ascii?Q?02d8JXA3fJhV8/7DeHj9Cn2CrpZLbb7VUHiv22fmIi5f8PJI9ugC5FGS9n2o?= =?us-ascii?Q?7wvUD8MpqUwlN2XGYDTui06rvZwq4kkwgS436ADc8YO7dXAEWtfnEZPoHfqn?= =?us-ascii?Q?mrYH3gMmPCc2PZ1JNUtdUVkm+TCbeCNnltPaoR176cun/RvuhwbpNpQG58I4?= =?us-ascii?Q?kT6dCazBErCQi4VdIlHIBP99SBGCkidEY2Pud1wsK9CPy2qfmrItsSarnrl6?= =?us-ascii?Q?j6oqbA1Z9k0n7uLDiEpl/9uhTWO/igsoOBDw8kfByzSLS6tpTKbeEKFvAosn?= =?us-ascii?Q?MsoSAMoSFJfqAyOI7JJ75h16CTdHygpi0VUgZqKD8FXi67qp/inisBc06Hq8?= =?us-ascii?Q?wXNU1Ynagsquz6saXv2EhIcVGpXW66vYfPsvnhQ5h9rfsCqRVW5iI8d3bDQz?= =?us-ascii?Q?lDJTT37w6tR0yCmZbfLz1EPJEi/M?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(1800799024)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?LrgZyUyLi+53wH2/zYlkG+jAXiqCR09LG/EmN6kv1pPC4IsH2BzzVv01y7dq?= =?us-ascii?Q?bQRr/IxwXO5D9I5eKlDwNMX7ANYh3An8ymZfBx88/QnAxVc+gfqgv8DPi805?= =?us-ascii?Q?43VGpBoRdxHg10U/WitCfR9cq8o07FQAg7Wn/nfFX+D7m+JRrNjjjT1FxiVV?= =?us-ascii?Q?0nleaIgRCvA9mp/zSNoPgp+uEG59bOkPHHCs3gnzkHQMTrL1crajTGAD4GkN?= =?us-ascii?Q?e1s+y+SeVcWfDV7p/9Na3g2GYN+r3STY37wDUrokpjICI/PX4mgD9C7stgfi?= =?us-ascii?Q?i8ONGzsrMrH3UeBpf1bNzHeGmwlJV9vnyz11aTlvBCYEYjfQUDYIJwQbU9Vd?= =?us-ascii?Q?MhqE+rj1Na9w5yM9Px1vyxi/zGIOuCyuy0P54a2FKHnGlNgS/BnD9HrILt8S?= =?us-ascii?Q?SSBZigPZGqG+B10LLlxLTNOG/BHKXASKiWAqolmzpv76rFjeXm1KKK2p06v4?= =?us-ascii?Q?dLbuipI+5sZDawvb1MatQrU5j7AUsCEHa8cE0cEia0BgWnrYzgp7Nya1ss63?= =?us-ascii?Q?FY6G5XKEW534uJ8zZoCpnJILI4x9fIodvwvuiLDZqsVYtpWFtD0cGTlWpEUT?= =?us-ascii?Q?GI+6Ojcd+6K3P0WQdfPZonac8tgQvMTwDl1lz6ekctaYBvnnRcNJIKicRSB8?= =?us-ascii?Q?KpsPEuu8CeNJDJw/Xyboz2uh38JSGJaPcbZJTw+nEquoVyCYoClyNVHhBh1b?= =?us-ascii?Q?gsjL0vfRWHUXOyyecMc8O5w7LWn3vUBIKx5zKfSbYRlE+uLnS8Rr7QJ2SR8p?= =?us-ascii?Q?MQbAwUQhsnrFDms4GcdEgGyQLueOheNYaIb5msI4wTA5VuiXioZda8y4OLKD?= =?us-ascii?Q?z+gBfUkLdKbSm7Jr7r+j5UFCaop7L46TlPxEIdS0grjf/x2rmOTttpXVAjX/?= =?us-ascii?Q?w4t/xuCkMx15KqJ/4rr9HkPkiIgR/I5acB8/NPFaVMruo7lvSTQ4ueZyecHS?= =?us-ascii?Q?EAnzjFZ/GIlUu51uYmKf4D7cAoUSyoDhxUpv+9a7TtcdQSDyDDVJHQwgHkOw?= =?us-ascii?Q?FFr1mfj4EBn9CbqsPF6LKqshtjnK0OUUSvGT/yq1bKQyi7LDoRuT5HCV+FlQ?= =?us-ascii?Q?2vhooUtCIdDkXAedmaXImi9jMfx7sdKV1I4RAIkCOr7WZSvbdVoiIKmHOlNU?= =?us-ascii?Q?zfOHG7KXsxsfCdFQIven9TbAnc3hBYxpwSwzV41ZMafgReRUdkv71PnXcR+f?= =?us-ascii?Q?rhFweBEpTXiwX+4+O1Ul97LMinrCjHDYP4cq9mTpFBYAoVD4JYhD6ZQFv/PT?= =?us-ascii?Q?90hcSTFnJyUXv8lp0IZoKbZ8lf9dvstWx175U9k3q3fyQ7ke8yQj2HyYohSM?= =?us-ascii?Q?QvupQbYB2NhB/fir9kdsHlZivlFxClKDzG0L58z+V4TGUS95T4N35KR2PfVg?= =?us-ascii?Q?/MOO44SWCrp9bkc+BkvGC8NcatIwKWUm2iXgDUNW1dVaF3PY8dBgOvx59qAd?= =?us-ascii?Q?5bQUHsRRkjrR+oE215mduOlAoo13ogJWTxgCqn/gV85GhUIvRfyRmdSEoOJR?= =?us-ascii?Q?02AOU1oiChu82Uwq2Za3RFl1H4kDvUa7wHKJcN4wTAHLLkb3DEJYYT+rzHEA?= =?us-ascii?Q?AQX88L5/dl5e8H02KWQgPn0fBPlXnA6ftDbzGSpM?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 545da9a3-d28c-4e8b-036f-08dd72c9fe08 X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 16:10:03.4581 (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: oaBVeaEp9tre1ftfZraXybqikzFTGtrAJjbKfQzaQqwYkMiZDIMRAUbGyL7Z7Bm6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9253 X-Rspamd-Queue-Id: EC9E040018 X-Stat-Signature: czeizd8me4k1r1uhq1odmbh74kdqy8yp X-Rspam-User: X-Rspamd-Server: rspam12 X-HE-Tag: 1743696607-137495 X-HE-Meta: U2FsdGVkX18N9anhXO2lLXdH0Z4yGvEAgkxQjM2QAYVfKjsyf7L+iBeKyx4TEzc9iR4wphw9cI0nyY/VA2vMYugjCniKYMqwEF2PuHgrOrQP+IJe3Rwy6xw4wdtp9EziKuAEbHPXePc5yfdeRbGKtvdJnPLBJ/Pb/s4jJHQgqquRs5hbYUn4TVFCYl1kw8cmw+4zdvBn0TwVixhb6MC1ZbDbEKGVOjuOCm7OSxtfAMAHnekHjL/Wb1ZfxTeJNdmwQ7hAYF5TqCu9EeWatn//5Welf+XFFEbOwIb5iviHuQ8OMW+asv+GHUG5xrRZHvGKySgbUDVxRK5CC0ocAnfQ9FrOm0dsIjHjCelz3e5KbYMFeLhl9DjVjpfMQM0GoJ3bc9Ff7IDjcApVY+YLeWqt4G5j7lnQp+0WlGDZBzKNBN8b9fbKP/TYJOLn5Q1b1nBLh6xjuK/SD8bmJv0oeM9KWky0vrtco+8ZysYtyTFOYU+gxJ8AMvEmL+ymnsKNXpnpPcfzUrhvW5Z9+3q4WdKfQSQqYav52bWkVVDhGo8VXCFW9fcY9fdyYXidYM9BGyfFEwSLN73uIKJSS9JS0Jx22iQVcbqqniX+a6gCj6mKtuubKLRryW33hbfaCCekPtRJOonTine3tF2YH50qhJOnp2tVkGP95SZEt5aQ8i0Vqts4zpqSzTzFppRhmQRkSJomSyRsZ9+PgEEtSZE15HZVo3MSTdHBlNePhDNIPOwiwvhimGe4iDSndCNy0imVdu/z0BYj2edZJbbgWnRzgQGTRxkdiMkkqevuKkyGQK/RFZiDIVm1sRdDb5a2ysgYakRVILAifxbBdfLPAjiBOZD1bGa8KQEKqMdtxsVbvXsAxS8Sh2wKJ2RTkZIGS9v+S0TUWi/s6f25Mzosw2w2128bGY3Dx8XWiChxxlDAkgqsoaN2umbkCjkRWtaAvQTFSko8gH3VXLnhzPVXqo5uAyP PkOKy/vu 2Rzyd6Zw3C7M3UnMCLl0xJf+SbCUQwmYYVdfQMGgmSGVZmBZTsIUXyV+FylvPU2Uy6d6CULteoeFK7mIAoQZRxOkikMmP/dWqPPBwqkdcYZNE6FrC+sdMhinqW7gIWCIpmGy2jkpLzyW+wDf30MCvB4TVjhkzE9sTfPzTv7tvjQiryf9Exa6tgLKPjchSGATYtJlI1MwGYeBs8KUV7s0WPNbukavLfoYcYvF85bRjwro0LjhGuWalPQ92YZi5++sHUOx3aYzpkRXIhsVKczpTrxkocEfSNUVVSjApSAfYoncXw3DR1cMmFBuBLsoz9rrFiu8+8z+g2VXMp8+ZgUnhzgCyMv13g/hl7usqeYvu7MFsb0dFjSgiNLuR9KosqmSAEDSKFnRHkXzge0xy+Aikr2+F9RDmUvdsko7pcT/9CkiXmLYRY48lLWbAthzRsuIgyDZlWquJxuyVCoyjWM3+zV5PgXYUOU+uNJL1 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Thu, Apr 03, 2025 at 03:50:04PM +0000, Pratyush Yadav wrote: > The patch currently has a limitation where it does not free any of the > empty tables after a unpreserve operation. But Changyuan's patch also > doesn't do it so at least it is not any worse off. We do we even have unpreserve? Just discard the entire KHO operation in a bulk. > When working on this patch, I realized that kho_mem_deserialize() is > currently _very_ slow. It takes over 2 seconds to make memblock > reservations for 48 GiB of 0-order pages. I suppose this can later be > optimized by teaching memblock_free_all() to skip preserved pages > instead of making memblock reservations. Yes, this was my prior point of not having actual data to know what the actual hot spots are.. This saves a few ms on an operation that takes over 2 seconds :) > +typedef unsigned long khomem_desc_t; This should be more like: union { void *table; phys_addr_t table_phys; }; Since we are not using the low bits right now and it is alot cheaper to convert from va to phys only once during the final step. __va is not exactly fast. > +#define PTRS_PER_LEVEL (PAGE_SIZE / sizeof(unsigned long)) > +#define KHOMEM_L1_BITS (PAGE_SIZE * BITS_PER_BYTE) > +#define KHOMEM_L1_MASK ((1 << ilog2(KHOMEM_L1_BITS)) - 1) > +#define KHOMEM_L1_SHIFT (PAGE_SHIFT) > +#define KHOMEM_L2_SHIFT (KHOMEM_L1_SHIFT + ilog2(KHOMEM_L1_BITS)) > +#define KHOMEM_L3_SHIFT (KHOMEM_L2_SHIFT + ilog2(PTRS_PER_LEVEL)) > +#define KHOMEM_L4_SHIFT (KHOMEM_L3_SHIFT + ilog2(PTRS_PER_LEVEL)) > +#define KHOMEM_PFN_MASK PAGE_MASK This all works better if you just use GENMASK and FIELD_GET > +static int __khomem_table_alloc(khomem_desc_t *desc) > +{ > + if (khomem_desc_none(*desc)) { Needs READ_ONCE > +struct kho_mem_track { > + /* Points to L4 KHOMEM descriptor, each order gets its own table. */ > + struct xarray orders; > +}; I think it would be easy to add a 5th level and just use bits 63:57 as a 6 bit order. Then you don't need all this stuff either. > +int kho_preserve_folio(struct folio *folio) > +{ > + unsigned long pfn = folio_pfn(folio); > + unsigned int order = folio_order(folio); > + int err; > + > + if (!kho_enable) > + return -EOPNOTSUPP; > + > + down_read(&kho_out.tree_lock); This lock still needs to go away > +static void kho_mem_serialize(void) > +{ > + struct kho_mem_track *tracker = &kho_mem_track; > + khomem_desc_t *desc; > + unsigned long order; > + > + xa_for_each(&tracker->orders, order, desc) { > + if (WARN_ON(order >= NR_PAGE_ORDERS)) > + break; > + kho_out.mem_tables[order] = *desc; Missing the virt_to_phys? > + nr_tables = min_t(unsigned int, len / sizeof(*tables), NR_PAGE_ORDERS); > + for (order = 0; order < nr_tables; order++) > + khomem_walk_preserved((khomem_desc_t *)&tables[order], order, Missing phys_to_virt Please dont' remove the KHOSER stuff, and do use it with proper structs and types. It is part of keeping this stuff understandable. Jason