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 ABD68E77197 for ; Tue, 7 Jan 2025 16:48:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3686B6B00A6; Tue, 7 Jan 2025 11:48:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 318A26B00A8; Tue, 7 Jan 2025 11:48:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 192126B00AA; Tue, 7 Jan 2025 11:48:28 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id EC42D6B00A6 for ; Tue, 7 Jan 2025 11:48:27 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 8C19D1A0AAB for ; Tue, 7 Jan 2025 16:48:27 +0000 (UTC) X-FDA: 82981239054.17.FE230D5 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2084.outbound.protection.outlook.com [40.107.92.84]) by imf06.hostedemail.com (Postfix) with ESMTP id A4832180017 for ; Tue, 7 Jan 2025 16:48:24 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=eIGazLOa; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf06.hostedemail.com: domain of ziy@nvidia.com designates 40.107.92.84 as permitted sender) smtp.mailfrom=ziy@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736268504; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=jJZ8Rsy4u7KQrymRps3wTge5fxB3mCYtwIHT7lHMe6Y=; b=sdMXM26v08bLIofrnnGhVV1QcB35sshgJZ7hFSo2j1uK7TWaMwk+UqurjD0ZQmGky5kXdJ ycKwxJs/V855ep2MBaVgZLjn548pJ7yQrFuxcbnCYXF2gBwMfo4adMtvgXKzuszACu6f/s 9jX5AL+1WfI2lNdfxI3H14pnyBmRFXg= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1736268504; a=rsa-sha256; cv=pass; b=tU9XulA20amoxjFb9U2EifMhYwS1zX3WnzKQ4gDLCO5jTC5q2shPAKKelJc9JEW6C0Uy0e eunHJMGV6Hj90QzKpcn03JUp8YbISwXJHJT9XjuAWVjUsFYoAJkQR1+7DtywgMnKdoVdHn AO8WmBw+LhlivRrgf1RXUT+i2KWfttA= ARC-Authentication-Results: i=2; imf06.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=eIGazLOa; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf06.hostedemail.com: domain of ziy@nvidia.com designates 40.107.92.84 as permitted sender) smtp.mailfrom=ziy@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SJgmgXoCSQshoDaNAAcHxV3/fdf+Th2ug/KLNx8XIK05dOnd7hHckiKPVkBfJOlYRsN68vPELOJlbhIip8uNFR0d5lo1i1Z5shqVxFkr7XOXBGSVVY6puIi6dZ91nbzskxlxzqpDc0/Y4Xw+vsVKC3Y/ntARsXjFwUBpfw/vvTfIWLzcqebsZScQoK47fb1F7LCcW45sFEV5YL8gyEES68lPzlqwxiuxnbDpEjyYrqPXweGmRtbnfPMY2CcNBkJTWvCr8dk8JTVoymHkQeokuf425jzHGjBQ1PMZU8UiDQixCpjC37PpvG7w/dQhHBJBUbbeAPxvUPk44k9co2wKhA== 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=jJZ8Rsy4u7KQrymRps3wTge5fxB3mCYtwIHT7lHMe6Y=; b=aHpjEgbpXzWi/UZl/bGPv+5B32Nqv3KtXafrJElNhbLTvN3bmpki/MONmxvYoaC42nCnI+3eka9Ndn1PPKdXNgFls2BHLNPW/P2OIHKHTMFzWuLZDIbpg14vne9LyJyoPvQ6XEsfJGYIyham+vgo6dxvsmjOTboFnTxLRRgTS3HG/82BJdHWeWASnJWHE72ge5CPtIk/B+geyT8/C3+gwcK6Tq0cSIRAxATcaaqgMe9s3D46FqxUo1VyM/s+fHTAtYtdIowxvUTiTltyXqGBnmybhhEvkqQd73mnGUDZ7f24rCUnfZly7j5ajZVGmZ671iSse0qmhjVujVafho35YA== 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=jJZ8Rsy4u7KQrymRps3wTge5fxB3mCYtwIHT7lHMe6Y=; b=eIGazLOatwhxDO/fz62zwTNbZkyqp0kjT4aKtzHvwdrWcnwzE3ZUSfJa60EFK9c4O1ySt7EepGLYLYBv3VcZZZPeyIUxFa+Pg5I1mgpglVkUQW1PpJETQ6XfKvmC7gIJ8Mav4qEfaH5/A/HbmeI9oOH6E5gDzAgLVhUmTddz1nIRSs/5sQBvoI3rJMgvJxeLMMUjdKros5z7PtqnxD3Oj+vDa0l7PQuTs6HSk6A8xns4vJenXZH6MELIe6N2S87JBn6lz6VuK0/Bcemrifzf1kUZ9SQtt/ZA8eRTStIyH6GZOqGDRLYBZlE6Jiq4is9R4sUjQKjbkfqdSzsmjS1A8g== Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by IA1PR12MB6601.namprd12.prod.outlook.com (2603:10b6:208:3a3::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8314.17; Tue, 7 Jan 2025 16:48:16 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a%3]) with mapi id 15.20.8314.018; Tue, 7 Jan 2025 16:48:16 +0000 From: Zi Yan To: David Hildenbrand Cc: linux-mm@kvack.org, lsf-pc@lists.linux-foundation.org Subject: Re: [LSF/MM/BPF TOPIC] Non-lru page migration in a memdesc world Date: Tue, 07 Jan 2025 11:48:14 -0500 X-Mailer: MailMate (2.0r6203) Message-ID: <5C9489ED-0B26-40EA-B47B-C034E7DACB2F@nvidia.com> In-Reply-To: <2612ac8a-d0a9-452b-a53d-75ffc6166224@redhat.com> References: <2612ac8a-d0a9-452b-a53d-75ffc6166224@redhat.com> Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL1PR13CA0222.namprd13.prod.outlook.com (2603:10b6:208:2bf::17) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB9473:EE_|IA1PR12MB6601:EE_ X-MS-Office365-Filtering-Correlation-Id: d5636397-dd09-42f3-318c-08dd2f3b1564 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?GAZcqIRWZmb+y93zePLBr1YBinNem/DXpS+jlAgMqttcg87/swHzKrrQ+YgB?= =?us-ascii?Q?UezHZ3vU6lD77WTPemqHyuz2g1XIZ242afSZ79dn1vyXfKbFnT/LWzxjf2iH?= =?us-ascii?Q?yHEqoiSzu7DyTl3gxEEZjGvNlP7S6jMAMbTveZLY1qZREzvkEu0ZAYgGI4oJ?= =?us-ascii?Q?O7ClmOcicnf+cu7m4jAks+SH0IHCQBjeSgaYd9xO1P2/6qbtz2Xg7x66jyd3?= =?us-ascii?Q?V/MAPDjrMpFb3+lttahVao8hm9un5jZt5QXsnDy5Y3U5/sKCF5S3AkYlY5BM?= =?us-ascii?Q?rLqr6j7Ciy+CVoe+pGI0xXICxkKKR2ng0tbw3TKG4KfX/LSdioO2FD/j/qe4?= =?us-ascii?Q?bxHzLWyv8SY1nE8os9k5tUM4M3Myla7AOc6pdKbZKnycPa5TrCPwj4Hou76p?= =?us-ascii?Q?O8tPREho62YAX6JC5+mYt4DY18AmY3qbN8uj5hu0HosR+Zd+qnZBiPKtVZQ/?= =?us-ascii?Q?9pm128r3I75XYRgGmAqBLIl/tZe24FDh5r/tRZOfzEjOvCvliVstFWARdnbL?= =?us-ascii?Q?yF4/ihvMydaNNAROIyFHhlb52euFaZOVysAh7182Du4JuBsC9HofSRA+B/c9?= =?us-ascii?Q?McKmWkUnono/dnVN45YVYkph2ZFTT+Vfr8kGd+id9EWsvEdxJR3f5Jmcm5EF?= =?us-ascii?Q?d2XPkiNt3L1coSXLTB97O29SAWdHYcOSf8w1zjHoR5fP7O0epbcoIRR4LfNR?= =?us-ascii?Q?y+8KOP8Dhvie/0H1auK42CgDtgEPY3ILj6Tdyd8wVd5BQp2VTqkzHwjf0jqj?= =?us-ascii?Q?20FQp6CExTeYU9yXFLCd6O19qWNt/Dj5Cg1G3hQe6/3ea12xXIVkJxKhQLrL?= =?us-ascii?Q?QPUcCCf8gFZ8+o5hf6z4zUj6D4fSIHgn0ZNxABs2zFZvdRnsqdAF+oKfxtxb?= =?us-ascii?Q?taBuAb0d+5tYxd5tyY8P9A37veFQv1XC0FPla5XeKF09GndeA1K0rDUuqm5S?= =?us-ascii?Q?o3JsPK/2Is1idtc3QI8Ltz6ZK0fyownJ20lTeh+eLTPNJpQFlSSQdZUyGNAj?= =?us-ascii?Q?HDUnk9+JrBRgkRGIdpKhsTJWvx35G5XiV9bRDGQHrr4v/mHpdf+v2hq33zOD?= =?us-ascii?Q?F0XuSEfdAFg1V/ljfjnqXSRgeSFETVrdzHgZbqYpsnf6cyG9V2zUSVIkOXpz?= =?us-ascii?Q?/jWx4dz3e4gdCJRuyUk8Ay+hBK0vOwhbrVfg71e5MS/OkClGOINm/D16Qz7q?= =?us-ascii?Q?nJLTW69IS5bSseELrpJISFa4zQ712eLobfTJ/kU44YORYW2BkL8ywi6seJRC?= =?us-ascii?Q?njcquvuSQibxV8Ad6DmPwGtunK6+VkT3x+A7mL1AVLpKGKsfS8g1PxDhtdwC?= =?us-ascii?Q?gArsPo6/azdTa7v3uTlOE15nevte4E9klMt/vPPfffeP2bxqavPmWrX/NoBo?= =?us-ascii?Q?IfvR9k7bpmWroBSJwvNC/EQtec1+?= X-Forefront-Antispam-Report: CIP: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)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?BXq5ac38cSNQjEjkFxFZgg9I9s18r4Do1oXApb68zqqt3+HLrEuqt1E9NV0G?= =?us-ascii?Q?eosnQcavLJ+Jh2qiBtN7MoqtpOyFY2R2+q6Ul1okUQktlZkNkvD8J119dnQ9?= =?us-ascii?Q?nZFihJXKzOQvt/WHROxJdB22VJ3NDmHjMc9q0ENJvAAEfr3b/qpXmi6/tpKo?= =?us-ascii?Q?qJmps1Xgb84WwPyorZ34umpPqDjuW/iiswO/7ZxtGb73YkeDKlSIZf4MXCOt?= =?us-ascii?Q?mCicpzhyisx07JTgmVryFIIM/tcuT60m5gdfrbBZwmwoGrBGqiTjQ+68Ezxo?= =?us-ascii?Q?oi8SkjOKwOwus09Zi8SBSQNlBKCHlvkS4hF8SoMojYh3HmZJ8uRoLikVH9ko?= =?us-ascii?Q?yCSZe2yCJZtoGDygVx8ms53YCNdTrUuleJFoUisBkdDELhk5xWER0oNRKk7m?= =?us-ascii?Q?yDqJpL5KOr7UOil0Xv4UeM+7cRbIyUkgxnXbE9VDUDoI3UL87UA5UmtCDYco?= =?us-ascii?Q?BZNugXEC9ggEWKGuKaRinNWLrstm0ipMQvQYhhfnMWQ6KsTwPVyjtWsLfXSI?= =?us-ascii?Q?KtsC+p6xUdnkrcAcHAR/asHHSREmPX02qj3dK0c2o6h1GcOVCDUXbtPlEwo/?= =?us-ascii?Q?0mIfbQ9YwkkPREIC4hmRPPKqKMhmVsxtKsngtfzlAyp2rRRXT7mRGHsAnJi3?= =?us-ascii?Q?/3rft5o6aMg33pocEHhYKeAQzeQSvaLqSxv3o1SV1p3USnhAr6At+yMMrEGD?= =?us-ascii?Q?vH3fB3OCFWccCyGwgmt8On/CL2w6hgtAuuMr6yQZhVc8BDOIATIr0MCVPcpr?= =?us-ascii?Q?/vAeLu6PyKIYdJ1DMr5cN2vVL+5b0Z/DsclAnqPcXqLxy1Ibu7ZGuybvShIx?= =?us-ascii?Q?itMCKOvHjiWrSa1NiSiyUY4pcz483ORu/TB1tY1Ydh06piEamqPIE5Pd9tqI?= =?us-ascii?Q?qWhY6FfBdAQ5jHj80tqQ5xGfSitrVBQjK5cpQyUZ2oBLU9MZeuisy8TnB3nu?= =?us-ascii?Q?v3SGAIS9ZukdPgt7COhWqWH9ql/Y2Y+47T3T+rKl+fAWQMOym1aD9PEODgye?= =?us-ascii?Q?CHEfPQl431KC0bhDmcZM8d6SEG/Jrk7+98dZe12ptm97ZU64CH0lM2hMQqPp?= =?us-ascii?Q?e9IHnQudf/2WTz5Q1tG/Sv0G5GF/vRr00BRzYYji2EVXQ9M0cz7e8OKLJ+cr?= =?us-ascii?Q?4fkBIey55EI/Pw/QYPWJ1TRzSMiLtiaR46uipHiaOmr2Fs4zX18QZFP/S0By?= =?us-ascii?Q?veS4sP5E0Tmauxw9umjMki8gWKscyLad6X8oKoDOpJE3lt+ip0MdrgRlw9Ib?= =?us-ascii?Q?hnkoj8KApvbqj4gt69aiZtMg08Ija2aCDoqcRso4aQhrXI3QRPR8cFErIdSh?= =?us-ascii?Q?o09k6lDozc/tgKv9EtAPESAB6YjursdmjVONS9DTI8aZRUHBvtCAAlhpZMI7?= =?us-ascii?Q?dRWeXbMTfylq21rLhcus4P7xtih801mvG1D9Zl8vjrTA88FAR4QAsJILtYs0?= =?us-ascii?Q?OSWTnIjcMJUOULdt/ceqv6SSqBTyndkzHel6m2Tdu2c5o6NB0JbkDRUPnK3o?= =?us-ascii?Q?CO1tkUlDRHluG9PuiDla/vIYlxU6FvODrxYehHfy2dOHdJUuR0WCzWBT/3fN?= =?us-ascii?Q?z13wt79DpT50RChx8HJPBq0yUBUAhI9nsqZJIlnc?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: d5636397-dd09-42f3-318c-08dd2f3b1564 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jan 2025 16:48:16.5929 (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: 3HF7EMMmJHOIgx3rcjQAgrZb/6rV+bEPa2Zviu+38KdXcwjEo1BnFEXuUCtNRtfD X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6601 X-Rspamd-Queue-Id: A4832180017 X-Rspam-User: X-Rspamd-Server: rspam07 X-Stat-Signature: 6eo7phs4685u3ufcdh4hf6hbxgcd4onp X-HE-Tag: 1736268504-197965 X-HE-Meta: U2FsdGVkX19CdMbpNdWsXHyd5IBoJuwOBwT3oYTFAykp05fF8Pxp3PCZp+bHejgssJGCrWGdQolsKn6PI6nygvztacZPjm611q3qpUE9KB11EQ5d0cvNi2gPF0HXJWiKCe+SQBrcP9wYOBEnu5BFLa5nD7N4T9JIFTU2HQn7R2f5NYSmklIHOUn6ZqYBQNx7OkedTXPoiBgI9z8W5UtsPcbCMG7BkQJf1KL/Ct9MBYAW1HbmU+bJ+oloea57oByu/c/vgxgBUdRaBxnMEWFJcIy93LGloEuoQDpyKFMuoIon8l0eITynOu9b765bInFmMVy6jTgigSR7yGWipv2TC2a7i8mpe/cLuAtaFMRUsiXub+uFVzB8vYRMpfNGitr430iCpie0hsMChLk30si9c2VwLfsJeM8ySJbbFMqofIMPRLkWKf6W9F6N0IeMuF61vbJpuO3+KEVhnhaA/6tkrj8ELpbnR1toknN/HwsaFaSeGNxQHyXjVbYwVPxNyj5I1HHo5TTQVg4JrBxc15dT7/JXTvVbqoS1ZrvXBb6T55nDQ5xklGNWimAMNiDDM98ElxbzTjGdlkXuAW+fyi2BcOtjN/ZZpdpw8NwLu5qTcT09PuXM/n07SEEdkHuHTnmn5o6jwitx472lduJW9qmlzMxXE4wKYA5lJOlraYyLyomE6xbG9qVO2HxjFl7VJk9GOoSA0IqQhS9p722ygu4UpFgYw0uPqQlBZVsP01ct0xRU7uLIgJ4tkz+LXhuVMXf0jh90+uvRHefnHoy0K/xUlm8oKQgMxcZG5KpKhBMWoH+X4bdfus0q3q0CYf3vKk3jsa/nSIChyjrixLA6wSX3kfIGqkRqITJ0h54tkrRE7cCbkZH70JSeATijhFdZRGKArXlcYwraRhsy/CJlgjF7tWE7Y3tBUMaK0nBKotlErbuJdvllf1sSkl/vMRQHjotpAneIO86i1EKvz+hnLT4 bAg9Z/ew NGKphiiGEm6Q+UAVTURwZM5An6rXbQ8h7J1PB4Vnc1RjQ2dWKmkN/2A60ojgSNPDfIeDNumCeIKhOxkavrQugT1xjU6FTYtd3iqWuRHPwPug6uL6tv9PESRFX+wVxnHvWX8ABvGtza/qSrAMQMjAD3Zj9eRFvBwHvnZbPmmaHZUtFuZEx9OR2QWI/SPJ6Yffjix4+uB7eVYK1cBpyKz1ct1t/rgA2zgwm8eSBxiMKEJ1Tmj510FdzCIYFHOPQiemweQk4GoGJtofon4UVue4F0OviUVkbaS5eABOyNOECy/LyMSwgBfevGr4PG+cHfKQvPUq8 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 7 Jan 2025, at 11:11, David Hildenbrand wrote: > Hi, > > one item on my todo list is making PageOffline pages to stop using "str= uct page" members except page->type and 1/2 flags, to prepare them for th= e memdesc future, to avoid unnecessary atomics, and to resolve some (so-f= ar) theoretical issues with temporary speculative references. > > For example, the page->_refcount will always be 0 (frozen) for PageOffl= ine pages, and they will get allocated/freed similar to how we allocate/f= ree frozen pages for slab already. Once we move the refcount into "struct= folio", they will not have a refcount at all anymore. > > One complication is balloon compaction: we allow for migrating PageOffl= ine pages allocated in some memory ballooning implementations such as vir= tio-balloon. > > For that, we use the "non-lru page migration" framework and in that pro= cess we make use of ... way to many members of "struct page"/"struct foli= o" and rely on the refcount not being 0. For example, we certainly don't = want to allocate memdescs for PageOffline pages just so some of them can = be migrated. Then first thing is to make all get_new_folio functions be aware of PageO= ffline pages and be able to allocate a PageOffline page. IIUC, the current proce= ss is: 1) allocate a page from buddy allocator, 2) offline the new page duri= ng mops->migrate_page() and online the old page. The inflation and deflation= in step 2 looks redundant if migrate_pages() can get PageOffline pages to= begin with and put_page() can handle PageOffline page too. > > While we converted non-lru page migration to work on folios (i.e., foli= o_movable_ops()) these things are not actually "folios" in the future, th= ey can have different memdescs. > > So, how can we migrate non-lru things that are not folios while not rel= ying on "struct folio" members, with minimal/no metadata overhead? Like I said above, if migrate_pages() is aware of PageOffline pages by al= locating and putting them like normal folios, that could work. Or you can do what hugetlb migration does, adding a separate migrate_offl= inepages() function to handle PageOffline pages. This probably can save you a lot of= LRU page checks like mapping and locks, but it adds a special function. S= o tradeoffs. > > I have some ideas, but no complete solution yet; input about the requir= ements of other non-lru page migration use cases besides PageOffline will= be interesting. > > ... and maybe, we have other non-folio things we'd want to migrate, and= want to be prepared to handle them as well? (hint: leaf page tables?) If we have dedicated allocator for non-folio things and make migrate_page= s() be aware of them, it should be doable. Best Regards, Yan, Zi