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 9E25FC71136 for ; Thu, 12 Jun 2025 15:35:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DCB0E6B007B; Thu, 12 Jun 2025 11:35:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D7BF46B0089; Thu, 12 Jun 2025 11:35:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C45B96B008C; Thu, 12 Jun 2025 11:35:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id A73E66B007B for ; Thu, 12 Jun 2025 11:35:22 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 4F449161880 for ; Thu, 12 Jun 2025 15:35:22 +0000 (UTC) X-FDA: 83547147684.05.6A91BE7 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2043.outbound.protection.outlook.com [40.107.92.43]) by imf24.hostedemail.com (Postfix) with ESMTP id 6F2E3180004 for ; Thu, 12 Jun 2025 15:35:19 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=kYrAkimL; spf=pass (imf24.hostedemail.com: domain of ziy@nvidia.com designates 40.107.92.43 as permitted sender) smtp.mailfrom=ziy@nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); 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=1749742519; 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=8MoZTQbNR9li9cigZh21aYeTFJNhJS1ZC+uVxlKm5is=; b=TyiZd8jb4uC15WHes043MLsMTeW9VjRmv7v2PV9mR18pUUSbUrRMuiPAC0wgPtTXr9VVJM MkQJkTJbCC6hNqcEhRri3hHOILyGDLPIhlxm3YECEliR0nS4s6UD0TXQURcQ78jAaT4E4n 8i6a0A0zmShanNDffWke2IqkBsCTMks= ARC-Authentication-Results: i=2; imf24.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=kYrAkimL; spf=pass (imf24.hostedemail.com: domain of ziy@nvidia.com designates 40.107.92.43 as permitted sender) smtp.mailfrom=ziy@nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1749742519; a=rsa-sha256; cv=pass; b=4MHbWwkoLf2R/oSLZzTS+Zi9x6qQRx4N4F15YAiFFwpRLsmoxUW9uI1IFeMnZtGjJ540Pd os31T7BQgpmlNh97zzr6BuLZeO/b6Z0Bv8hxY/OG5QYl/97Cr4KB8FRFdU4qPZf76wpseB qXrZgeJonv11BwhQULVzQfH9NIc9EEM= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oxTgb9oaHgiv60ZhrfUK4EcP03BFe8LLiL67IMWTU/P33XO1Yu6CRMwkg6FpbwzUVJMf6ord3cX1w20HIIdPMd6UtLuXaw5OJZxxHV5/s8E5G9hketbsqag5XADKK+lAVRH//89I+da1QirLAcUYKuFRUTxHHuiGaVpa6UHqqbUbn01wkd2xgCK7kWE/dbm6DZCJH4WrZ75zoUCK4Tqpt2+/+VsWkgZTNE2R7Ko93FYSvqSY+gSwxI83of/GBXSgxJiz2fcQfuYgjiKEXhXIy7UA6cfOdGbs61AnbuvPSywLMHmB3FlY7Xzhx+KkdKCs7ZqHC8zLzcN253LJIQvb6w== 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=8MoZTQbNR9li9cigZh21aYeTFJNhJS1ZC+uVxlKm5is=; b=vWHO2cFLx7mnxOo5s1a5g4MqfeQ3ebhvvMnI0JZllTDT03fY9vy2sZf8/ZIKslmYoHKQotiaZvoy+h2jMM1UwQA3RPQiJLTAYbHW3L+RKw/q0/mN7EJduz42exa7j4+ZlWu8ZeE8lS2kV5Falsv4fyzH5Q09FpCYyZeauExGEAkjzcqcrDcUGpYrQZoIk++dWclIWYF8UwTlfFnkFBWze7T+ejdnMLIuNAgBC8gjP4fOAZyjiJz3CBsGVr09H99mGvVJHy5BIbbv1biiSPWZZxnDLj9cW8QWWlvLr/qsqRj8fPiwL2MtCInySpb/hzaHP4cFISIs9U4sgL4LhjCn+A== 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=8MoZTQbNR9li9cigZh21aYeTFJNhJS1ZC+uVxlKm5is=; b=kYrAkimLuwY1mfsCeqDI3Ctmh7npZPkEXogL+Lfs71NIKQZGcnT95+WppH004JtgtKdTQA8QoZWeKeCxu2qMWCVaScdphZDlfvKgMtSm/iqaErPFeYbprw8Lap3rQYWGLD8NjCtaLPrvieDWKmUWjlqOmbs5qYjqZuZdNZ58gVaClaDuMheKlXH0HjXqKxGLDYgke0WnN9p7EFyf9RQKFrk7Y3V7l9bHJEaMCpDwJd/0tDf3U7E/qQcVFv4CtzmAltQxuVc39PWiFMfnxFgseSIRuMZErgr1XGiskjplxMB84BDndY+EuH2WL1T6P7Q8/5Ccraik5vsUXKov4095kA== Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DM4PR12MB6135.namprd12.prod.outlook.com (2603:10b6:8:ac::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.24; Thu, 12 Jun 2025 15:35: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%4]) with mapi id 15.20.8792.038; Thu, 12 Jun 2025 15:35:16 +0000 From: Zi Yan To: David Hildenbrand , Jinjiang Tu Cc: 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 11:35:12 -0400 X-Mailer: MailMate (2.0r6263) Message-ID: <839731C1-90AE-419E-A1A7-B41303E2F239@nvidia.com> In-Reply-To: <90112dc7-8f00-45ec-b742-2f4e551023ca@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> Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BLAPR03CA0095.namprd03.prod.outlook.com (2603:10b6:208:32a::10) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB9473:EE_|DM4PR12MB6135:EE_ X-MS-Office365-Filtering-Correlation-Id: 2d6f278c-092d-4183-f862-08dda9c6bad6 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?Cu6rXrOeRrFsEeNCcBXt8Wf0ZOnkAXDejluwO8ZNjg0bG5A+8gfJJ9B1dwgb?= =?us-ascii?Q?EFAnq0NrcMLNrZkeUp5eCEbzKjtdLRjC2ljsZyJLypl13fc98GgrOUKChX3W?= =?us-ascii?Q?I36Z3Z1avNUgQujvV8n3ZP8csR5L5uG1g7qszIPdZ2rx5D7/Jah2pmo3JppQ?= =?us-ascii?Q?Bjbmxjq+v+oXE3grpsXRKiEluBqiXKf4qmaSl28Zv9bDhINV1kSH7uNCp0yj?= =?us-ascii?Q?5Vm17QyWjbMH1pLWR8IicesR7B/3dY8YdvULAfq0I3QPFY5NIhLkNei/NqaT?= =?us-ascii?Q?iMOVBDVl7q0JkYZkoeEtqMWD2L8W/lIqrPeBu8jkkwLNw1UFz7rNpxQVGLUl?= =?us-ascii?Q?BcwXYXVxf61b86Ojv9/bhpuwn7bvoxYkhBqXpwwPn+E2WuJZdfkoQ4Ry1AQ1?= =?us-ascii?Q?0QbUw930YwdvEgMfk05wzv3bLUa7nGcIr0kumEkgN5EOAn2P/Zrnp+gTXcjI?= =?us-ascii?Q?cYRWWnYaVDGknRDNk5H0ATcR5ETwDcqSn/1o1y6wJCdQeIHqmJ/7oZ6Q1EgC?= =?us-ascii?Q?1I0wJPSThLivmbBj89VZFFkIc5n/4CialoK1cp26ryd/yHyjJ6z5iDopzAIR?= =?us-ascii?Q?DAf7rUEiB340h9MGO85CHS996CsoOtibDGM6eLO4JKp68DbMnk+u761PAw3q?= =?us-ascii?Q?/4snU4CNinWEGOz6wuMMdXHptk3EzRWCHYECQbtfuRG8R/DCfiJCIjnoxkmz?= =?us-ascii?Q?cK5RefNu6E1Ccm1xCxGizTDX3vOUjeFjU2jhEQ1yIvHj+witoogWK6YOE4VK?= =?us-ascii?Q?uQwCDoGSxKvhfi0OqGodDTbDnVtrRYcCSm0AtY93E5428a+SBdS1zNEOAc06?= =?us-ascii?Q?Ev5bpzYx/YP2YdY7Pwq3M2JkrTb8GfI8m2godT9i2ayQp/CmiS6gCPraRcFp?= =?us-ascii?Q?lyzOsrVXAuChTdy/SVLhWyqXRIybxcu4irXXs65IGCyD3KLkkt8yidtHqmXc?= =?us-ascii?Q?lf48qTrouR5UwPWsBTx0L0pGGTmULTPrstQIXGHwKbe14MqSTDLNl/A0Be24?= =?us-ascii?Q?UQOVFDCWJiDPgE9Yh8Nyz1GxwmtlP3FodH8P7WfE6Ec0py8VTHX/EMc1rNYi?= =?us-ascii?Q?O6q4FNAliHhJsW1p/ZiBRHR9oMVw5IXeL1dGeHLJP248qDfWfN/xb9u8Y+Ks?= =?us-ascii?Q?JHvpU6s8plpuu7nt9GvxQGu3wnhhC14OHrbrfH3e8XwArcJAvvLju3ybn9Kh?= =?us-ascii?Q?dYIFRsFNXDCUuXKwzVgchoL2t3Xe2+v2sW384q28TlVyuRlRGQcnxLrGhrA4?= =?us-ascii?Q?FnzozgaxB1XW3XhIjWxsZI7J2AwKCsITadEOGkSSVbmKIuW0b3ISxMkIyhsS?= =?us-ascii?Q?HM3Zodv55Mv/ipLZc53I64o7uJ3U3Q8ZBryTvUSSV+eLBuFvdHIYPjse16XK?= =?us-ascii?Q?P0ymMflv8IgGD2p4oRRCi/w09uIcARXP9OCvMNaA6UvwGn6ujKecBhyrPwWG?= =?us-ascii?Q?BQH1j6ngiIo=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?zEIYTTq3A+0YIV4pa11dBse07gp9NQb/wFWenTiGek9QS4gl9E5YDio3nm6+?= =?us-ascii?Q?tHH1kcz5Ql7AbHAl/C+unDV0lIdiw6KGGldTN1H6V2e2KHG9FY6v800zej4W?= =?us-ascii?Q?Vb3/7A2J9hOiXcJ3WPu3AERNHajRfypSPVzTcT5Y/Jm6bto2yGx/oVBKHbRf?= =?us-ascii?Q?TIq7XRlPmCxY9eVKnIjKfzhZSE735adNJmFM2DK/pH10KwOz3TRni+N3UVBu?= =?us-ascii?Q?Tz83nvYQr30z488hDpbSBde7bdLOvH8yZkZuizBCGkuTfwMzCvGv4uZkXO9d?= =?us-ascii?Q?KbY8zgYCi4qjhqQFSxSGMg7mKDSvfZ3MypJJqdvmqEGnt/uAbu+541oqD8tn?= =?us-ascii?Q?Te2vh5PG1tFBQQtzDxQZyEOlDmWREc/c53UU2dypRyKqWtiyEdleezspvfZV?= =?us-ascii?Q?aQoE+I38f0kejhgZusFXF76sNEATuamCadbMSfPjx5L7UO3LPGbO5zAcN31v?= =?us-ascii?Q?K4vEHF46SN7SQKS5jxqXraD2+FJE96G5sMC9+6AyeY1Z87UqBrjRk00agLhr?= =?us-ascii?Q?15wPu4Tn7KqMdlS7EvhgyLqzeFcD1yiX7uxiRgSkhHjgev6/AGiligwYb++v?= =?us-ascii?Q?d4pncF9gRtW/CcbU//l2a1HQYQhIOvbRVEoAMp0fzVfU7Sh3MspWe3n3161i?= =?us-ascii?Q?KFqWmVmQB5TIrq9Gh2X3qGdF/GGh2fOtYkmSpvHlsCmocMp02fKippdNW2jG?= =?us-ascii?Q?RGgnNz4SYDZakOrYUwBOjkBsxcUYdjDG5/+VDiDhcyc3iDRqN/7A8b6G1LMX?= =?us-ascii?Q?rdu1Ea5/Z1D4Ss6u7n8DfsrND1QUanL2aSleJHPlj48fhtsitYLHoYZvPTYo?= =?us-ascii?Q?QWYnSV+rXpQmjUTnSKZXxuTcMHwyUjkRHmSV5ovMYqbbbE+eCytCWjSaqb/l?= =?us-ascii?Q?F6X0pTR90dONyq0CgKfPButpX3duWRblDLwlwuhnVHc2RsJDvX1fZbPr6Bai?= =?us-ascii?Q?+Udi4Qh9H+Ntvmaz0N7ahVZDUr7Zgn5ZOcIvueU9yfCE4yPih1aGlPqqhIzj?= =?us-ascii?Q?UnnQzpZ/hlAkUxiDpNwQwTiUlB59FujRFGbWfh7y1hCCavEf2jFdOfMP60YB?= =?us-ascii?Q?7vNlx05+VI1c7836YH2h9AQ1aDtX6usHqcRGoy2gYGRtqEaVcD8CC4MiYbe/?= =?us-ascii?Q?sE5A89mkaeGYbx3YmmXLT0tZh9RSVBI6im69f3MsyApNtHjlxMqTLe0V8fvr?= =?us-ascii?Q?6ZQuXRAo0dnUZ18WZeWElSFgyEZKO7KAwhrxKMhOoNCYm2bre/fWYNwus0fm?= =?us-ascii?Q?rEOnUGf0Sl2IQeRtT/BZ/kWG45wMufTcqhPZfYOjFxiFOaN3/vPOWQW/bJuM?= =?us-ascii?Q?DhRpyhC8y9Acf0RXuz5Bx5NtmQ38Ih67hzyrNunAVU/jy4wRX268IVsYls12?= =?us-ascii?Q?aFUT+uUArIIiUiGC7q6MSLTQE+hjvK8DthgOAuLBgZ96g3Z75KYWzdonc2e1?= =?us-ascii?Q?EBwmmilw/rBiK+xjwHg472tNQQ6w8olv5UubfNoZl2qyAcNLnZp7bE8IcHdd?= =?us-ascii?Q?/Vv4RcoQ4o1nYkbG8HNPummbYC6ZXC31SpQ+fvDFBlZfwbXteNjzujOjxyrm?= =?us-ascii?Q?R/c7Gud227kf0tTmM1I=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2d6f278c-092d-4183-f862-08dda9c6bad6 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2025 15:35:16.0830 (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: FRFgsqy0XODRxGGINgsLtF4Mb9lepiaou/sUXf6NfBL0k27OBxlhKBjc9C0zUerH X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6135 X-Rspamd-Queue-Id: 6F2E3180004 X-Rspamd-Server: rspam03 X-Rspam-User: X-Stat-Signature: pq94rg75xwdi3mwij49agqaw8ehq15dk X-HE-Tag: 1749742519-985388 X-HE-Meta: U2FsdGVkX18Flc78sei3aAfIMDQXKXADxrKLRdp95EqLGhxIE60WafRe6nHEc7AIYYrg7sw/7K8tuFtB8XLEjPqN+UiTwHfgwvuXNxHu+EfXHjPvZiJToTPFKwjSI6QMCVOGGEht/D3WP4b4M/v8SHUOY7UUch7z1VIzCm1ss+WQtfLWHUJoOtXyU8DdbhPVMOfsMW8P/K7DCuqSrXV3FBblWi5AodaqRh6WWvgNhJ4OtIS+gk1TifoK4IXhzZfMJ2OzPxamdUTZKphn+OtAzJhhsxj9bGSNOqw0/TrW77hXM6PezHQ40ptcZLXX58oRUF2+R9/xkPtJMZ6ckojB/HkTyvdik7P81z6qoEuCsJ5mgboTrI68kq+gRa3zqS2XuXuZJS65YI84YMjVpzvX4dIQm1Ypv3ODtqZe5o0it7SCtiVLLVEIvsErrJENu5WjdLxGknVe03J0wLzoOjG5NaKnBhLYS3ASTcpI+50VgW6X89xf7NojWj/PKLMT7nJLepapysutredDd5NgGe9uHP7mnrX0vqrmkotBVUFvOxdvcYY781MOEKZZ0AAP12h6M6lKQZo+5kvPRfcoN+oS6To6jTKgQii2cFopsXqMWsYstg1KTAZ9WBZ+zOgIdI/9BRSz4iD4ZFQmuGDFgncTWid7ThH8stiAQIJAJpKwcgpQ7RKS4jyvXiGgIlyeoGsdSB5SEJNPhWIL5FXizAM3pCwXjd3uVRI2s6WlVFf2vUcE0mBBybEfYBjhYlkVKCHGGAiYUwnS3ajg8AO8LupB3VdvfhfmIFZyMp/PxXPGb349KkZqCyI7mH8CIJqHNOvXC2SxH2tLlCnTBccVHyd+EHB9+DXrRjFU0bAEYHH4emDWp31hI61T6FnYWfcJtzxHzAUCy7FtnOOz1LBlkvnk8JhElN7wZnJqvaGqDVJFcDaJ5YrP5X3b3QAxIKltYkoVZ/+uRrD5ZboZMQB2TVu BLTyLAx9 +aitUjvrY+egeIGW5F9myW1SctufUQNQjyDw7JUD94SRbnWioV8dA64wLXQCYO5hpehxMPtvlhEhAwd5FBDMCcrRbHskhsCUf/zXrzMgNOKnUCvdQCIlGQDJ7t8B3pag0vLTK8B6C61NHYG2OgKw5xLQb5i4b0wGH666Y5bxaU/nEplrgMFzu8xz+Z14FDWu6mIsWfdgrTcL/6h8Dta+uQ4nCNgJwKpnfkUBbOhLTGz53hLg3B9Gl2reLxocgmiknXvj/45PSpGD5jMJgSc1ZJ0EXh+AidKTWg2hKrge3m0jgXaGiRsqAWKZvajVNf73GZjzy5eXsMAQ/WJ2kI9wLnZztbq8RK1XEZ/qSquha21C+v4VCajg7QSWAJsyGBi11IQ9JTvMkoV3KAv7M5kyhE292wh7jtM50BsZRLpeyzol2qIWI3LKJx9pqhDJ1OrpXgcTdFXItvhlFpp4= 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 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 *folio,= 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 map= ping, so it cannot get split either way (e.g., freezing the refcount fail= s). >>> >>> So maybe these checks would be too early and they should happen after= we froze the refcount? >> >> But if the caller does the isolation, the additional refcount is OK an= d >> can_split_folio() will return true. In addition, __folio_split() does = not >> change folio LRU state, so these two checks are orthogonal to refcount= >> check, right? The placement of them does not matter, but earlier the b= etter >> to avoid unnecessary work. I see these are sanity checks for callers. > > In light of the discussion in this thread, if you have someone that tak= es 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 __f= olio_split(). > > That's why I think the test would have to happen when there are no such= races possible anymore. Make sense. Thanks for the explanation. > > But the real question is if it is okay to remove the folio from the LRU= as done in the patch discussed here ... I just read through the email thread. IIUC, when deferred_split_scan() sp= lit 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 large= folios, why not just split the large folios and add the after-split folio= s to folio_list? Then, the while loop will go over all the after-split foli= os 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? Best Regards, Yan, Zi