From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010060.outbound.protection.outlook.com [52.101.56.60]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D3C4729B217 for ; Mon, 24 Nov 2025 16:38:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.56.60 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764002337; cv=fail; b=nbHlTiDXTJrAslclrTe5KCBm3acQRc5ObNzSWt5OIOTS3IjeVGTAEBTRfNk7HglBCK51hKO0vU6tQ8HqtPbgCQEh8E+qYY4GlwsAR/ScvMqUtPHHM2mvsHRTbb4CVQCfMM5Epwr2tI0BkvmB6cPAFfuxLhggP+uD7Cgj6hX8crU= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764002337; c=relaxed/simple; bh=KFBJRAjrRpDgxchAuBS/L24TpXtz3eOz9oVqzSsBxQ8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=sPvyOGZhn/S2psx0A/OYUNI+i/g9z4WpjlFh75N1C+1Tqza0xc5aK+wg0amrQcippfYlOti1y+/9wQNZd8LYPmKanqE0LiNzSkwqA2wUG6oVHRRrjUIVmlmcylYNmQWYQrmJ+UusnZ4ylWxXBHe5tvFwoDaCYqOObb0bHRPT07c= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=oQKv+9O0; arc=fail smtp.client-ip=52.101.56.60 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="oQKv+9O0" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=y4+RuT4xhL7J9XYOWCP0E7ntzTTukzcPVz3V891LUvSw4Vir6TBvdQasDgz5tFGuMCY1mOKm8M9rcv0K1m+RlE06cJEbl4ypUavU0TX0NX0SW3Re5CQDJf8nvzcQtd6fNn213e0nNSNuLJsqlsbJSGHaQpx5bJ0F73dub+kx8oyjRiS0HYm5ELY9qbG1S1kmbdTrFxrcdl154fidzJRr00ffnIajgoCoDHr+PXOIYeRxJyyR68KmTWcwmT3cJ+/u66Ynm2QGc1VTMIEw3FN1pjLrGZuFFQT7MVlt2oe16codru2zdWsEjbg+Evc0KGH5YqTZBMT5yXZ817BSXdZf9w== 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=UhuXqPikeGjVEdoEsST9hK2pofVJesxTxNaGjv7Djrg=; b=lLpfPTwkhZpG7BQi/iMHX3aRDfOP6KfNp17EXE2IwdQyO8ozZ7bnh8A7nXVUF9SUHw3ixdg6xXGYNYmQP5kBp/BCba/03hNThlEyN9L8SiA9N7c2E+Ik9Dxgn8VyEb4O49PR6DD5TLa2WimALhjCcpajpxr6A+4daCJN35V2iktFYsBeAWgGMtaycUMONGqQKI3UpW2DpvNyM5Z9oCAaRZyOHTL3ksdxMNY9ayx8c5Rlv/yigDmUDlkB4L0g26saMUKkxmQJlXPrRnvRKsd4a+3p0txMLdNtidRB67ZFPo7yw/1qbLSmAND4Tbwh8fZFHZ3PMGdjRivPNes7aczUSA== 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=UhuXqPikeGjVEdoEsST9hK2pofVJesxTxNaGjv7Djrg=; b=oQKv+9O0lUE0wDUKl8iwb0fIbVI0KMZB+wYp10A+Xz1urHVNQ2GPIh8M94u2HhwYT2qrAPQtvfxSDGGth3LKz66zJVeQoMFo077cLVoUaL3DY2IdVIlDkv2U4dMIbaTdUjrXH02c1yHlyX4mbXi7rCoxGEzoCGM0GtiKwoex4kQjJ9B2t3HB3zE5ChdchmRBwklcl/JEMslbWtYrttC3v5tSQfmlVsdA08vZL8082mvhd/Z9i92bNMi8S9wPkd1mrCqy9InvsxplWgicgqf3LOlU6CA5gvEQG4KSzaRsEd0PicPzbFcneRbYSoeCbMJ0TbAecQgONIe6DY2JxrQ1hg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DS2PR12MB9776.namprd12.prod.outlook.com (2603:10b6:8:2bd::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9343.17; Mon, 24 Nov 2025 16:38:53 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a%5]) with mapi id 15.20.9343.016; Mon, 24 Nov 2025 16:38:53 +0000 From: Zi Yan To: "David Hildenbrand (Red Hat)" Cc: Barry Song <21cnbao@gmail.com>, Lorenzo Stoakes , Andrew Morton , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Lance Yang , Miaohe Lin , Naoya Horiguchi , Wei Yang , Balbir Singh , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 1/4] mm/huge_memory: change folio_split_supported() to folio_check_splittable() Date: Mon, 24 Nov 2025 11:38:50 -0500 X-Mailer: MailMate (2.0r6290) Message-ID: In-Reply-To: <60d27f00-20ca-4a58-9d32-ffbe55f69a1d@kernel.org> References: <20251122025529.1562592-1-ziy@nvidia.com> <20251122025529.1562592-2-ziy@nvidia.com> <60d27f00-20ca-4a58-9d32-ffbe55f69a1d@kernel.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR22CA0011.namprd22.prod.outlook.com (2603:10b6:208:238::16) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB9473:EE_|DS2PR12MB9776:EE_ X-MS-Office365-Filtering-Correlation-Id: 92910a24-73c2-4ebd-31c3-08de2b77f402 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?c1JlZHlWcHF2b053TkxmZGd4K1RCSGxEOWxlY0ZVaHc3UUZ0ZmpTZVp5Vzd1?= =?utf-8?B?Y1k0UE53d29aUEk4bjJuWENYTFhBSDNWSUJVWHBUc0ltUEwvNlhjVjlVdVBL?= =?utf-8?B?YTVCbFJXREJsS1ZOM0lLYlk4OEFDcDZhZUxxcS9EWHlSV0dnNHp1Ui8wNENp?= =?utf-8?B?YTAyY0RtemN2L0RLWFU3d0M5cndid1I0cXZZOTJ4b1A3NVpVUWFTZVZjNHpD?= =?utf-8?B?WE1TOFk4c3J6VWRPQythSytyYW1TcWpHc1NiVFk3QnB3aW4xcU95VXBsQXRy?= =?utf-8?B?OEtvSHdTV2pIeFFvbkd0RTAxSFNMQlNxMCtITTFobDF2dWwwd1JJOUZ0dTcz?= =?utf-8?B?REZSbTBFSGZqRExMc1pqaE5UV2FWSHVDZFgxVWliMmE3VHhlNXhUakorbXdM?= =?utf-8?B?OWRhUzNSN0NyTWgvc1FoN0h5RzlSZnpWR2ptUG9XTVpKRjZDeXZqM3RBUnFG?= =?utf-8?B?R2FGRGlkZkhub1RCS0RlVGdwT28wOEhyU2VoTEU1U1FKTExtUXpPUGxDU1VZ?= =?utf-8?B?QVpuQ2JXa0tMYXpJU05BcjJENklMWmpuUVhEZlV2UXgwMERwVFNYdkx0MWxK?= =?utf-8?B?cW5jbUJ0VUxjSkpIUFJtYS9ZS1NoMUgwTDBkc0JVVk8xZVVtZWJOcy9YZDJH?= =?utf-8?B?OFFKbTBYbkhyenlDTUZXQm9jcnlsSW8rVjMxKzVmeThEZ3VWbVJrNFA0QzBV?= =?utf-8?B?OEhYU2tJYWVBNG5jbjZvMEpZNElNRnc5QjJDd0tNbHh6ZnI3d01zdGhjOEZX?= =?utf-8?B?YVNyR1o2MkVmc2pSM1ZhaFIvZHlKUGpDZGhIVUZZcllRbmdKRFVBcUgwUFhN?= =?utf-8?B?VG5vRDNuZEJ2cUhOY2w1bnhjTEVLVDR1ZHdZdkZ0WVdkdFRZbExtSHEyZFJh?= =?utf-8?B?NjQ1QVJQdlpYTGE2UEwxbFFwMnFqQ3Fmc2IyVmZ0Wmg1SEtTOTE4RkJpUDVt?= =?utf-8?B?MWx6eTVjbEhuR2w1MDVmUmZQWlo4MDVBYmtTZTJuRVdMNGtKL1g0MGVYazJM?= =?utf-8?B?U01wRmpDS3dIbXlMd0cwTVRWWHhRZXExSG4yRFhsTXJBL1prMGh1dVNWMGYv?= =?utf-8?B?N3dHakRMQVdocW9Sd25ITUVmRnBZS0UrV0wxbWY0LzVPcnl0a2VxVkgwWUtq?= =?utf-8?B?eHl5c1d3QkpIR0NIWW1FSURmS2twT1RzaTZZRVZQckhyMG9NOVNNNVZQNTJs?= =?utf-8?B?VWdIZS9YVVdQWmJJbXF4aVp4NGFUVEFGbDQ4c3dYcVl4V3V5SlNibG9vWWtF?= =?utf-8?B?YVNaS3dpNTFEQWFqRmdianZ3dHZxYTVEbWZpOERqWjFwYmtscEZCRTF0d1d6?= =?utf-8?B?a0tobm9FeVpmZFdvTGlNZ1hyU1R4ejQ4Y1haQUpWSWJFQUdIcTlRc3JLUXdi?= =?utf-8?B?YmgySmFGaXU3cGRyQzI0UlFwdmNZREtpdStuNG1ROWM3R09VZDdoSnBnT0R3?= =?utf-8?B?cC9mbDB4cmc5NnRsVVU0dVVSb29kaGF2M0dTWkdBL1M0YUdoUys5V3NGVmJR?= =?utf-8?B?clo4SE9CTjhrcDJQYjNFWkh0bVdNbFR3WExXU1o2WTBhdktwNURod3BtaXlq?= =?utf-8?B?YVlBZVhKWFZVMmlFVVVMUk0yczM5Rm9ONEJSSmJlYzVycm84SmpFamo2N3M3?= =?utf-8?B?QXduaDd5RnM1aUUyR2NtMTlrcVFSNGF2Wi9mbyt4NjcvYXNTdGR6d0djdWRH?= =?utf-8?B?UFdVVVpzUlhSV3J5aHJJc1RvWS8vUi91dGI5RDhqdmdnaU9yd3dKMmpXNjBy?= =?utf-8?B?MlVuV25FWXVWNVpjVjRhZldZaEd0UXBXVFQyR0RaV3dhQUVRdFhhYkEvcThK?= =?utf-8?B?dVNGdzZsS2RnV0djV2MzQzQyYWh4eG9yMW8zYldkUjlpTDg0ZUMxSVBXYlND?= =?utf-8?B?V0MxRlNnOHlRZFQyNnRPUnlpUVJyOVN1dHFGTU9JczNIRFljWmdIQVNuem0r?= =?utf-8?Q?SCqPz/3CMq34sd6W8EvicDb80R/l2F6E?= 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)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TEJOOGxpYmpwWUloUTg0U3p3ODJlRW9rV3hoLzNkaFp1bFAyZ3lyRVF4WCs4?= =?utf-8?B?V1Z1dlBCSC9CQTB1VmFwbklUUHgyL0RaRWRqaXlLbmphdU12R2lJbVBhRis4?= =?utf-8?B?MFRRNzIyN01uMnA3WURrOU1zT1RqZW5YV29ndlFadUJFMk40SnNIajhTUkp4?= =?utf-8?B?STIvQnBUb01Yb0Y5K2xzMmRzc090NjB4QU9pa285dS9ScHhMVjltZjR5c0Vt?= =?utf-8?B?SUxnUEZ4OEUrSU5ac3ZFbFBnU054TFdQOXBUeDJXUDdKSFNyZkJiZXZLUGlP?= =?utf-8?B?Q1M1UG1CWnRnWXBPZUJkSi9xVmxDZTZTOFFrWkcvdzF1eGJRVUF3Y2xyZ0Ri?= =?utf-8?B?NVZQeEliZ1VRdmRDMXg2NzFyVko2VTdnZDRKemN4MEtlc0pmOVdmR2VSdjF1?= =?utf-8?B?WFRiVTBocE02b0xlSU5IT2d3RXBqeENqdEtIL21YZTBudmlNdjQzQXZZaWFq?= =?utf-8?B?YUsvV3BJQmE5d2RsWmhrc2RsSDdrK1ZGVmViR0FpNzhTVUtSR0o2ODZKV3ZN?= =?utf-8?B?dE8wd2oyTi9ZaituWEhsYnFsa0dza1hxMWZzNU4rMVFhd3ZJKytucjQ0TVNI?= =?utf-8?B?ZVoxL0JzdWwyWEw0b3F1QWFaWCtnMitXVzZJaGFKLzNWbXBhRzZWOUxGMUk0?= =?utf-8?B?VHhWcVBUclF4SUhObDlDcjFkQ1lJeWpvUmdmUHdDZGZKdVA2eHJhR3ZEeDNv?= =?utf-8?B?NFcrNzk0cFd3eHorRTAwbVB5QUxFUlNwSXhWYkFYZ2FZMUhaZnBuaXduMFJ0?= =?utf-8?B?WHY4c2ZDa29mQTcvZ3dvT3NaSkFvQzRkWDFVQTV4ZEVzQzdVVmM2WGU5WEsy?= =?utf-8?B?NzNRNm51czh0UDZjQUpMVzV3U3RYUms1Tmc1K254anl1YlBENmdkZExPbEI1?= =?utf-8?B?NklsbC9icjJQcGdSVWlSdDlWMTNacXJKNG9ENHgrdDVGNVl3ZUd3cnBiY0tV?= =?utf-8?B?UVRrT1ZwbXJBZWJ0SW9xMytXRnBTZUV4Wll6MFFnL2hLRTVqUUxBa2ZHdWFa?= =?utf-8?B?dVJnWlMzMXRLb3grdDFOUkpvVisyMEJudFYveFMvci92U2pyMkFFbFpDWkJj?= =?utf-8?B?YUFHWk5RYW5FMGl2Z1cxU3dnd0kzcTJCa290clhLaUdjZ21zaXB1anQ5dDRq?= =?utf-8?B?TXViSG9ieTF0bUFZMVJTMUdPYzdQcW5yMEVYZU0xNTgvVTEvNGhqeUlxdGhr?= =?utf-8?B?aFRSb0xSM1FNek9UYk8zQitSak8zZHh6NFE1dFE3RUl5am5Ec0c2d2R5WkZ4?= =?utf-8?B?WnJEUlVGQThUdFpNbDNWR0FhM0N0SXJ0N0RyYW4weHVOZTQ2YzlaL3F6elpP?= =?utf-8?B?NXd3TVM4UkJ3VmxKcHRHWExiRW1tVUxxM1ZDbSs1cGFncytwY2c5UENMcTgr?= =?utf-8?B?OXlUU05GR3VvbFA1Q2hHYnBlcGxSL25XYldyUXlXSGU5R3ZlaUJ6RTV6a2hM?= =?utf-8?B?RklqZThMdm5hMkNhaCtKQkcwbWNRZUtFUjJ4ZnBMLzdNRWhTMFhZT0FVRG12?= =?utf-8?B?WUFDNkIvbG1vclRrS0xGbUdhbkJqUENlTWlZQTJvb2gzOHM1NWZTNEpYNUhL?= =?utf-8?B?THA0Wm9GTkkrK1FyYXJIbXpTM3dpZDR3bkxDWGhId1NyVVlBU2RDSWdtaFd5?= =?utf-8?B?MXpXdEJZWThzVnF1SUN3eDR6dHRXQWM3TW96NzZYRk1RV2t6M0FBcXovZ0pk?= =?utf-8?B?c2E3NjJPYmtQUHRNOEVDeTBWWHBYUFM2Ri8vcEF5TWZtU0Q5eUk2dC9XVmVI?= =?utf-8?B?eEJUYzlBeEVUL093WEdIcWVrY1RlVGlETWx5ZElkTWJ3WHg1Rmp1ZG1Jdkhv?= =?utf-8?B?UXFSdVJrT2FoK2RDRXJVTFl0N25iSEt0K2Rtd0dkNnpqUXpRVlh6aTVWOXpt?= =?utf-8?B?MnRmNWVjcGovVytNYXVQZ2k0bHBjM29XN1hLTXV4QzQ4NXFrR3NRempiZS9J?= =?utf-8?B?Z3BzQ1ZIM1h0cVg1NWEvNFpHNkttK09nVGhXcUF2OWNaOEdIN3gwUythMzRV?= =?utf-8?B?ZTBtbnRTcU1DYkNKTDF0Z3dmcFk0WDN1YmxuSUFmTGY0WFZKbGYwbXlCRnBG?= =?utf-8?B?cXRTYXlwMzBZMTBseTY4VG56ZVg4MWwvSlNiaWFqWDlZY3dxTXpBeGkvS21n?= =?utf-8?Q?Q1ySdk6zXmClCDCoTslR5TDkN?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 92910a24-73c2-4ebd-31c3-08de2b77f402 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2025 16:38:52.9523 (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: 8OZ6XKIGz2vpGqKknIvIxWBUMfO8KBIZEWIbUdC2TIG6veFjY1xSusfJrpuZxfU8 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR12MB9776 On 24 Nov 2025, at 5:33, David Hildenbrand (Red Hat) wrote: > On 11/23/25 19:38, Barry Song wrote: >> Hi Zi Yan, >> >> Thanks for the nice cleanup. >> >> On Sat, Nov 22, 2025 at 10:55=E2=80=AFAM Zi Yan wrote: >>> >>> folio_split_supported() used in try_folio_split_to_order() requires >>> folio->mapping to be non NULL, but current try_folio_split_to_order() d= oes >>> not check it. There is no issue in the current code, since >>> try_folio_split_to_order() is only used in truncate_inode_partial_folio= (), >>> where folio->mapping is not NULL. >>> >>> To prevent future misuse, move folio->mapping NULL check (i.e., folio i= s >>> truncated) into folio_split_supported(). Since folio->mapping NULL chec= k >>> returns -EBUSY and folio_split_supported() =3D=3D false means -EINVAL, = change >>> folio_split_supported() return type from bool to int and return error >>> numbers accordingly. Rename folio_split_supported() to >>> folio_check_splittable() to match the return type change. >>> >>> While at it, move is_huge_zero_folio() check and folio_test_writeback() >>> check into folio_check_splittable() and add kernel-doc. >>> >>> Signed-off-by: Zi Yan >>> --- >>> include/linux/huge_mm.h | 10 ++++-- >>> mm/huge_memory.c | 74 +++++++++++++++++++++++++---------------= - >>> 2 files changed, 53 insertions(+), 31 deletions(-) >>> >>> diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h >>> index 1d439de1ca2c..97686fb46e30 100644 >>> --- a/include/linux/huge_mm.h >>> +++ b/include/linux/huge_mm.h >>> @@ -375,8 +375,8 @@ int __split_huge_page_to_list_to_order(struct page = *page, struct list_head *list >>> int folio_split_unmapped(struct folio *folio, unsigned int new_order)= ; >>> int min_order_for_split(struct folio *folio); >>> int split_folio_to_list(struct folio *folio, struct list_head *list); >>> -bool folio_split_supported(struct folio *folio, unsigned int new_order= , >>> - enum split_type split_type, bool warns); >>> +int folio_check_splittable(struct folio *folio, unsigned int new_order= , >>> + enum split_type split_type, bool warns); >> >> >> It feels a bit odd to have a warns parameter here, especially given that= it's >> a bool. I understand that in one case we're only checking whether a spli= t is >> possible, without actually performing it. In the other case, we are perf= orming >> the split, so we must confirm it's valid =E2=80=94 otherwise it's a bug. >> >> Could we rename split_type to something more like gfp_flags, where we ha= ve >> variants such as __GFP_NOWARN or something similar? That would make the = code >> much more readable. We do not want to make folio split complicated, especially the long term pl= an is to move to non uniform split entirely. And this warn parameter is solely for CONFIG_READ_ONLY_THP_FOR_FS, since large folios created via it cannot be split in non uniform way. > > Could we get rid of the "warns" parameter and simply always do a pr_warn_= once()? The issue with this method is that truncating to a large folio created via CONFIG_READ_ONLY_THP_FOR_FS triggers an undesirable warning. > > As an alternative, simply move the warning to the single caller > > VM_WARN_ONCE(ret =3D=3D -EINVAL, "Tried to split an unsplittable folio"); It sounds good to me. It at most needs the person causes the warning to add some code to find the actual violation. I will do this in the next version. All VM_WARN_ONCE() and pr_warn_ratelimi= ted() in folio_check_splittable() will be removed and __folio_split() will do it when ret is -EINVAL. Best Regards, Yan, Zi