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 73C68C71136 for ; Thu, 12 Jun 2025 16:48:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D91FB6B007B; Thu, 12 Jun 2025 12:48:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CF3C56B0088; Thu, 12 Jun 2025 12:48:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B94076B0089; Thu, 12 Jun 2025 12:48:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 971956B007B for ; Thu, 12 Jun 2025 12:48:33 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id A58BCC15E9 for ; Thu, 12 Jun 2025 16:48:32 +0000 (UTC) X-FDA: 83547332064.09.6FECA71 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2063.outbound.protection.outlook.com [40.107.220.63]) by imf30.hostedemail.com (Postfix) with ESMTP id B1FE18000E for ; Thu, 12 Jun 2025 16:48:29 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=swMaRabM; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf30.hostedemail.com: domain of ziy@nvidia.com designates 40.107.220.63 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=1749746909; 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=xUeZs4smfK65aS1gv9+eMnQIwEqmBP9rho7nuWW32TY=; b=Q71rdlw7mXrh+qNpEKJwhShZ3jABblISo9+p4PQU5O2kmGXz9wVICn1MJvyD0eUD/4/s4P ZDdOULxASlFILgvO/Yqw0DJsr1OqMEUY3g/RaZoJOKl8pNDAJrXrf9VSe0x5bPlOWB6B84 d8pevY425hvb98VZIFva0Y8k1O1ZxVA= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1749746909; a=rsa-sha256; cv=pass; b=E/e2cTs/fOg2Skcn35SDRoEx+EDfzgKyFNlLybfcHAf4AbYmK4986TMuXXEzHF/h20Efwu /wZIKAq6lHZ3V7ldY1+JfTXo/qo3MVzZ9a6gZZ52p5tRyd8UY6DsV5QwnWA10ZfFFzeHnt ul9CElkOaHJuNU/Zs6Myqef3Ydp7m9Q= ARC-Authentication-Results: i=2; imf30.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=swMaRabM; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf30.hostedemail.com: domain of ziy@nvidia.com designates 40.107.220.63 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=x1WJ22hyOsF+7F4SE8h0K2Q0kUXQybC5hdGgoE2YNPePiA7rNdN95jVmZSBBtRoTotECKh5go/kzkn9GUouaDhGjk3JoMRMiqjM0BZl4pstXmidtQ1zoJnuiXd64EYn25Hn3QXV+b8T3JkYfQF8wDX2JOVh3nFLroefq3j/QDDLU7js8MIAimr6U0zxomMSgVkxX9UZyw6zufJd8GyBaPgewTPYjlYs1eivX10wPqSkf9EdFA49PVfC84GzV/up7rBLanRMsJofZUcrN3eMcIoJF19dVMQmiT+0i87KHT5ZNVk6lfnMGmvp1zoaeo17aP1jhJQh3Hl6nZzwzEKYfdA== 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=xUeZs4smfK65aS1gv9+eMnQIwEqmBP9rho7nuWW32TY=; b=wglE/YffR4W2FKtU9lAryJ7DcxO48S2CzAnIhnu4GcZRHjmy36pNduSrXy5DYd4ajIY8L74FcawzeY29jXnwkodUnx9YdiJrLM4VPJdLuQXtKh31HS39bl+BqVMCtAzmmsZdDs3XXBY3+XKeDmQHqmCf2YLSazQ0C+YSLXvbABlZ/U4v0YFlmG1QbbIcg1061x/53i//3PlTtc2Xh+SjTMyjw5idnUv4AZnN/UbtEnHjjWuEv0/QtAfu5UZ5WDNczeW3Sy7Et8mM5HEOEziqg9JCWCA1pRDM7zf4UolNgw8CMYWqVP4qY+z9ku6h67l7eFWCqAnTJZ+Pxg9ltJCJRw== 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=xUeZs4smfK65aS1gv9+eMnQIwEqmBP9rho7nuWW32TY=; b=swMaRabMR8xeGdlYxrRpHlLokLFhNnZdKwnD6AUyUIIRN6B4imoPSIfCOtKS+49E7SxJAD+9Lb32EidjhG+fydRESrLXgj1NHujcwMgh6/WxSMj538Eq+pGpo8UChfm542mixu+VUqz8BUTqf+L49sVwgDnWdI5FSsLcznj67acI67YzpUCyI6qjmOA154F+6C1dJzSWY9kuQ58kZ4pLXjs9raL7apgR33fbv6qaT8Ft8IPd3WGykbMs2X5t4xHk2hwZxeHgw5fBgMZROswTQHkYSB0Mrx9mLfA+47o1VJlGGT1k4w+nxC5Kdmo/aUsvapZRfCvIVjA49CTBrvRYUw== Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DS0PR12MB7677.namprd12.prod.outlook.com (2603:10b6:8:136::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Thu, 12 Jun 2025 16:48:23 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a%4]) with mapi id 15.20.8792.038; Thu, 12 Jun 2025 16:48:23 +0000 From: Zi Yan To: David Hildenbrand Cc: Jinjiang Tu , akpm@linux-foundation.org, linmiaohe@huawei.com, linux-mm@kvack.org, wangkefeng.wang@huawei.com Subject: Re: [PATCH] mm/vmscan: fix hwpoisoned large folio handling in shrink_folio_list Date: Thu, 12 Jun 2025 12:48:18 -0400 X-Mailer: MailMate (2.0r6263) Message-ID: <45D4230C-F5CC-49B2-B672-C65E9D99BB3F@nvidia.com> In-Reply-To: <94438931-d78f-4d5d-be4e-86938225c7c8@redhat.com> References: <20250611074643.250837-1-tujinjiang@huawei.com> <1f0c7d73-b7e2-4ee9-8050-f23c05e75e8b@redhat.com> <62e1f100-0e0e-40bc-9dc3-fcaf8f8d343f@redhat.com> <849e1901-82d3-4ba3-81ac-060fa16ed91e@redhat.com> <90112dc7-8f00-45ec-b742-2f4e551023ca@redhat.com> <839731C1-90AE-419E-A1A7-B41303E2F239@nvidia.com> <94438931-d78f-4d5d-be4e-86938225c7c8@redhat.com> Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN7PR02CA0033.namprd02.prod.outlook.com (2603:10b6:408:20::46) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB9473:EE_|DS0PR12MB7677:EE_ X-MS-Office365-Filtering-Correlation-Id: fb235a7a-92a2-46c9-10f9-08dda9d0f1c7 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?RGxE5lB+QM3QEVk5hem1oUuUeB816T/XFAvBW6A7BZjvdp01vkbOlXG5HtTd?= =?us-ascii?Q?pfJ4IgtQavLqrmkiU1ZDdS+xeMqeDXL6VVjHfITF8HSnUzuHDWwIpc0t5InV?= =?us-ascii?Q?z5J2+J6hcGhAYt2ybRLoxYSRwbzRMiOZreQFVVjGYCsZyZnwdNnqPZrb2h3V?= =?us-ascii?Q?Veyzk7EUfQ3mOQNMTbdGAuuII/11kExGaacqTOPkGX9likd63x6tiHBukDXV?= =?us-ascii?Q?/xG4pkvS0IyYtf2q+njZAzVHno4LDxCxbsQqqNB4nplLMtO9BlUfKmhGs6+D?= =?us-ascii?Q?RLzinOoqca2I/PnkZcnxiRSPx5nsZSbCwiKfRfw0Q2eOIdYYQPn1ffC6qmVe?= =?us-ascii?Q?QPODPv8eYpkPGE1DKH/2p9nrlOMK0SAc+I2M/hgDfX0JiQqTHEkyZOrCP/C0?= =?us-ascii?Q?7VyI/xuQVMfKsrM6bI7g/6nsgMTNzNvE5F+5XBrrHKHrJPEREzY04GwSbDGQ?= =?us-ascii?Q?4dRCh0LvneZVu9eXQm/tok+YlSxLTN3ITZguhiovz23vzB5o+qjGgVNudIWM?= =?us-ascii?Q?Ik37aOSUAS75LgOYQlByFYZfQUmDuw2iJkIKegG1+rX39pKeDwAkP2zvMdA8?= =?us-ascii?Q?GJAdf4VGMed+amYdipSteuRKreS3w1DU67h/PzUhZoPf8jBZ8UHU/1qfcz8s?= =?us-ascii?Q?Brt6mWNG7THtMDAB8Ms38m+q1I6lz1BbJoyL+G9DyY3Fp5tv5MNWUKeXYrfO?= =?us-ascii?Q?5WFs+fivbtmuuOUVIhifM+bFRMkpKpol1c/E6QN5607k5sV0kmdCNlqMsB2I?= =?us-ascii?Q?Q/GI+UHLwF+PqbBKzccwwhF/GWU+xXCwfigfpGPJaZS0g8jdQOk8zGTef9wZ?= =?us-ascii?Q?EcV5LaRlkWrlPpbQ75OapD/fYND7L/N1o1LxAa2sVF0vWb52yDKE9sfAvmXo?= =?us-ascii?Q?aFDSV/qvCrkfZRvYDVOGUOAsOEhv68CMG/mDPL0+nJazsy9xn6yxSbpUXKlF?= =?us-ascii?Q?GSJKN/ue2YvuZ6WG4lAU27c+YcJqXvT7FVRReZ52d2E6oiJ08+b4aTjFm7o3?= =?us-ascii?Q?S4xX/4e3gHveqo0TF7hr1DiuleXWnIQ6d6b+OvrdnrwB0HU+2ena2fcEP5hV?= =?us-ascii?Q?1ExjxtX9oan2+QfapIeCIFtx9buGUa/1OwFSac6jBEtbLxJve6T9BEo7rbZI?= =?us-ascii?Q?4O2WM7SwxYZqZanJokNn0cClZq/L5/isfBOSP/HZPIfalejG0zb/r0dBtIpH?= =?us-ascii?Q?kzaBNDe3Lu53DC/uzrCquOG3H8RyYjTx8/7xbvnejsGRiSTP0oaOlP62r7We?= =?us-ascii?Q?hbKh33gPM43KZzyLiAeCWXpdOJcDLJMCVutaPDt1qHP8CZ0ZayVrwX80oHCo?= =?us-ascii?Q?/KqGV5fauKoKnlcc97luQVufovC/iNZsHVPEpxl/zWcTwNvGT3NocH1UE8Z0?= =?us-ascii?Q?0D6f+yJptsgIzS5SR9mCVZLbUxWk6e21TQNcUJXOL/20/Ud2GDyJjgHUKrgq?= =?us-ascii?Q?JU+kO1ZHxBw=3D?= 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?HjKJZi339b7wgrO+a/8mdqrhzhDUggVZTpFDd14duKEtCgJK0YVjdoS8ruvZ?= =?us-ascii?Q?kSRJbd/1thn0SRODPoHt/PAhRaI3xDe2fFQlpm6ICTpvsDWcqG+8IecWTwVt?= =?us-ascii?Q?6rNnQpRU/3Fur53Sp2I3K/DZcjQPSqR2VLSYFcio9SARNKCAtCpIbgzxOqKF?= =?us-ascii?Q?F8Yfe32KqQHpIWp/j6Th9qSiNDXaZkd/CoKqbQa/iEXDiAkri29/+ZoGw3bz?= =?us-ascii?Q?aZ5BKOoN07KCuzS4kPjIm6pip6eWFfQnV3q/1NyDVMGXqgYTiWuR+VYLMkSb?= =?us-ascii?Q?e+boLLRF+Gan6Qbpc3wmRUsE1dLY+NbvKjYCp95MRCLFepVlZ0yHJTucFlnL?= =?us-ascii?Q?yMNRATLgbi00YtPCU1mhDNzfWp8va4aPN+FlKsOAG9W/CjNjpbyBwnM7frPO?= =?us-ascii?Q?QkAXlF4CSqW4JzXYjzh7T+u+jN+z9PQ+On16vOhbyPS11c2ZA76aYzknJj64?= =?us-ascii?Q?SAMJ76t9zPx73nEjbZwDWX5mBy9YkKjnSiDoD8f8YTpkZNVyGrn5XjVtGff7?= =?us-ascii?Q?FEYpxQVAR70HGoFRZYndVeN19Ba0k6S1sWh3L6R7yiA+y6NsNKX4I5Q+G+hR?= =?us-ascii?Q?4tKCZ3wrkleL9NH2VQ2Eb8UZZ+8r+TY2b3uJeep4xoD1lxfCVFHjBNXobD9t?= =?us-ascii?Q?ej54AP3vZlElQGvmxJnn4K8gQ8+0ZGS00EU3V+NV7DP8L2Yusxs9q5bkulss?= =?us-ascii?Q?OakqQp8K9rwkjCShYfavxjVByxT28nBx/kQpJKMLspZCUmJKlBL9IKxj7nf+?= =?us-ascii?Q?jVY6ABDDq2yzBqZj2p4vqzsZjs5w6dNYjxy4LrMzFHaMXbC2AplAJo1PycKY?= =?us-ascii?Q?dOd+/HcguPmUChBv3vOnEiXrQGtaldsRxMiNBwQMh8Xo2rDdBkguJJfiUC6s?= =?us-ascii?Q?wlm0kbWONZMp6RPnoWFWpSCAxFG2bdHhO80WmdekHSWgyKVwuzV2KjxKZmi+?= =?us-ascii?Q?bV954TDzfEB4n3ie7QeAuawccQoJjSZNP68Cr1lSqhgzDGX+xcTnH3EuxIvy?= =?us-ascii?Q?3S7xsZnSzxX4Rjz9miKRJG6I3PYTh8AG61zucUa454uDKy+QzRtu4AKLkg0G?= =?us-ascii?Q?ew0XBdY11DR0XgNIUSXs76Cq62wujM6fMV3OIr+FmRllcnDXKkKDEay/a4Tf?= =?us-ascii?Q?DgLpQCHYV1EvD1uE3eu8qj9/0Yy0Q+xIAubteV66ttyGDwYPMIvuqGMb5q4L?= =?us-ascii?Q?GcJYTRUTxkCu0Yy2kb+au8dB3+HsH6+HIb9NmRFGkLGcWjzz/tJtVWb0yJPU?= =?us-ascii?Q?3I9hekjT4xklux4PF7x15D8UGw0EczYgCGEGSULxOXRZ+3hRM52wBZog0Uop?= =?us-ascii?Q?NLbHRD7skqjQ/M+9p0Qh+pkRfE8zd/Dmnq2DoKx/ILFjIVcNghJMyWVMVIRu?= =?us-ascii?Q?OlNzqvFeOWOpWRmToc9gPCON5y/baBUS3JEF9N0w8wnR2L6ZgYircztg9S/n?= =?us-ascii?Q?PAGwLGrde9SfHK715Kj0lFd7/QJl2L7w3i65B8Sy/1ijRI879Xa3sctqehw5?= =?us-ascii?Q?g7Hl7a1cWQcsiHeALmts+bZ0Vu8/k2cNe1CaaEfrQiABrql9L9wRxrdhPTdF?= =?us-ascii?Q?s1uwoz8ruk1fy3zFLGM=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: fb235a7a-92a2-46c9-10f9-08dda9d0f1c7 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2025 16:48:23.2579 (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: q+v3HW5wGDtYjeMckJLy02NTdnrrfgynwm8feOGsjHIae+lj7ustvLxTw1xNyheU X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7677 X-Rspam-User: X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: B1FE18000E X-Stat-Signature: 9ticintrwjaagsop7emqf8d9i5u9dsbo X-HE-Tag: 1749746909-851555 X-HE-Meta: U2FsdGVkX18cbd5piqFOes5LQomys1f21skFDVAC9hvlhQ4vEj/6bGXDZNFqlm+7Iq4V6Nau/UCuo50Qr4t0QUCkYsZKyGiNJlWD7YShLFO8Y4OWrhZSCrF6jX+yafqAGQjUWCxStjskI9+mjAPwb3/XY1slpX+DDjbpG9eSSd6h1oUT7aM4+CKnRE6HR3FyihUUTEPrb/TDQEbrNnQ2cnnSa55KiHzBuMccc60KHqAb/ZIN7tl54bqjjivdQuOUR6aiJeWVdV6tH0TCsPd040jC9JVzfNt830KLctRB9KPFvRPmWvnx2CD0NkCimW/qvabC0gIrClevcsBz8NutYSOqXO8wQkCQYbbxXnZWuK4+E02dFweNB2UchqXLXcF0iKKaNX5ulbVOoUD75OHz+U1xMMLHzIpChgJJbsihPXeZBaLadCc8ze3fB10UMpEy32M/fQK8YPUxGAE3IVGYZUcc1SusyTxZXsCpQb07oAlZJzQaSRejYQqjDc4WPKN9VE/48c/JdgRL0/h0bexaswtmM7xTOz/rLU7WHBLtSnBiLpwTnko727A4HJfy540RFYY89N6SbGS6P9oeO2ljl0pxoHGnED18tO62DsjY9ChJWJrXlcPBU0gW04GMph0Ez7g6o7CMimA+HJJKfmG6UBPRyzwKO2OEJgCiFglQKJEn67BL9JlOw9kRioLs9+noAb4+MwdmzLCVHSo2DrI+Bi7xi9aUU4LjP1ohrPuHe9d6R5zGvUfg8DDUDytM0fGz/9zXl/gxRJh8Jb5d9X8rv/WZlTJGHvzRjn7Vg3vp23K03PSn84fLG5DsfApOPKnbdeLlF9hd+vtii9wtRTlxU5rDdsaT8/Jujh3BrcYZqkgPAaEEQpgSshnUJLINr5rwSW+KWbdzLx57x3v6Tg9uiNzQw5/3lZFHHc9yEsjFBw1IZVTNuG7HLc8Ybxwwvt2Cy7p778rIwriyZN/8NDt hPWANk6V gU9llvKkLq1EeSeidiEqL9PHWiOn8Ige2O3fZO5Of7KHHKTI63JgojzhmB2xTad9I9kHWM1s4DHrPSFNBYKMuP3gUhEQ3GY7GhLiT81ZY4VVJ3/j24fAzAr4TpgU9MeGdDG1ajR3rgyowrQADC9DVBQY8kS0jYtfNNe3FlNi4M76jeCeoU5yXY+F2HKTLErAAQY3gevWhbZ2LoBmL3W7/WleTmvRMjIoen4jlrNM1k17It1itaaAgSmwwMwy6qMi6ovEGxLL1qPuqvxgmDEIJ3oyGLyoH5jqFVIIBYJXCrdexvY5QQTeuc/Mttu3q+MQnRfFBGYgrcTgNqO9aK9BAXAFhfNd5bupF99ofg2n9oJg7AFwk2i+djGLaEiwViEunionXGWArG75WQEUJUhTW5oa6UMtUCgJMG//GohPSGW6RTP2tKhcPfhTD18M5EsowL2NjRyUajd0yxRs= 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 12 Jun 2025, at 11:50, David Hildenbrand wrote: > On 12.06.25 17:35, Zi Yan wrote: >> On 12 Jun 2025, at 3:53, David Hildenbrand wrote: >> >>> On 11.06.25 19:52, Zi Yan wrote: >>>> On 11 Jun 2025, at 13:34, David Hildenbrand wrote: >>>> >>>>>> So __folio_split() has an implicit rule that: >>>>>> 1. if the given list is not NULL, the folio cannot be on LRU; >>>>>> 2. if the given list is NULL, the folio is on LRU. >>>>>> >>>>>> And the rule is buried deeply in lru_add_split_folio(). >>>>>> >>>>>> Should we add some checks in __folio_split()? >>>>>> >>>>>> diff --git a/mm/huge_memory.c b/mm/huge_memory.c >>>>>> index d3e66136e41a..8ce2734c9ca0 100644 >>>>>> --- a/mm/huge_memory.c >>>>>> +++ b/mm/huge_memory.c >>>>>> @@ -3732,6 +3732,11 @@ static int __folio_split(struct folio *foli= o, unsigned int new_order, >>>>>> VM_BUG_ON_FOLIO(!folio_test_locked(folio), folio); >>>>>> VM_BUG_ON_FOLIO(!folio_test_large(folio), folio); >>>>>> >>>>>> + if (list && folio_test_lru(folio)) >>>>>> + return -EINVAL; >>>>>> + if (!list && !folio_test_lru(folio)) >>>>>> + return -EINVAL; >>>>>> + >>>>> >>>>> I guess we currently don't run into that, because whenever a folio = is otherwise isolated, there is an additional reference or a page table m= apping, so it cannot get split either way (e.g., freezing the refcount fa= ils). >>>>> >>>>> So maybe these checks would be too early and they should happen aft= er we froze the refcount? >>>> >>>> But if the caller does the isolation, the additional refcount is OK = and >>>> can_split_folio() will return true. In addition, __folio_split() doe= s not >>>> change folio LRU state, so these two checks are orthogonal to refcou= nt >>>> check, right? The placement of them does not matter, but earlier the= better >>>> to avoid unnecessary work. I see these are sanity checks for callers= =2E >>> >>> In light of the discussion in this thread, if you have someone that t= akes the folio off the LRU concurrently, I think we could still run into = a race here. Because that could happen just after we passed the test in _= _folio_split(). >>> >>> That's why I think the test would have to happen when there are no su= ch races possible anymore. >> >> Make sense. Thanks for the explanation. >> >>> >>> But the real question is if it is okay to remove the folio from the L= RU as done in the patch discussed here ... >> >> I just read through the email thread. IIUC, when deferred_split_scan()= split >> a THP, it expects the THP is on LRU list. I think it makes sense since= >> all these THPs are in both the deferred_split_queue and LRU list. >> And deferred_split_scan() uses split_folio() without providing a list >> to store the after-split folios. >> >> In terms of the patch, since unmap_poisoned_folio() does not handle la= rge >> folios, why not just split the large folios and add the after-split fo= lios >> to folio_list? > > That's what I raised, but apparently it might not be worth it for that = corner case (splitting might fail). OK, the reason to not split is that handling split failures is too much w= ork and it is better to be done in memory_failure(). In terms of this patch, returning large poisoned folio back to LRU list seems to be the right thing to do. My thought is that the reclaim code is trying to free this folio, but it cannot reclaim a large poisoned foli= o, so it puts the folio back like it cannot reclaim an in-use folio. > > Then, the while loop will go over all the after-split folios >> one by one. >> >> BTW, unmap_poisoned_folio() is also used in do_migrate_range() from >> memory_hotplug.c and there is no guard for large folios either. That >> also needs a fix? > > Yes, that was mentioned, and I was hoping we could let unmap_poisoned_f= olio() check+fail in that case. For this case, if unmap_poisoned_folio() fails, the whole range cannot be offline? Best Regards, Yan, Zi