From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from CY3PR05CU001.outbound.protection.outlook.com (mail-westcentralusazon11013022.outbound.protection.outlook.com [40.93.201.22]) (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 E51F323C4FA for ; Mon, 24 Nov 2025 17:29:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.201.22 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764005402; cv=fail; b=Z7itbCH+xw+JSJyQDj9MI2dln3cgWinLmeDqur3CjjUU1iCac6qKCHug+CduXHvsdTrkLfCgdqVnskwEpjaq5T0F8urbShBMSth+gAXFp99lN2c0zqER8WBclBvG8Gzx9EIaKHLWZRm0DML20pSRzYJLXLPiYLqX7H9NX+/Lv68= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764005402; c=relaxed/simple; bh=l4EFAzi+BLwAuGHvg9g0PKrAY7PldWzoq9RckKM/zxE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=njmS3z9PdX3dnbVhBOcZB0DG4m2KnbTs25/Try2n1GYy18lrHOW0RsHvlfb0YNWylx8i9OuSQeLb4VlQG0UbZaY7SHhCStgHxV4gduLGJoFGLop6veSbSt6+1OCZtfeyN7h76rA/Agz3n/MhtUMmZSI/STAX281FhzKMhaosKjY= 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=h0LvZbYt; arc=fail smtp.client-ip=40.93.201.22 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="h0LvZbYt" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KEyFqP4x3j3+stGLxGg6l6bKNdNZ1a3R6AC1tGKPSd4wD7FcoloDHXVFwLL9a3RR0XgCWPS3rfG7CAjwkt0SMYsj8+P3NjD+6N7CW3mBzJslBAJ9Cax5pzAYB8qmq4prlKVVw2ZxPz5s7u1KlhPZSQQL/3FWpxbjfMvgjYLjuQyK3sohilVr3/W9ZzqR5M4s+d9k+TKsxo8ExfXP0UnQiiMGjSSYwLTQFN6rFHm7Tn8ak2eUa2Y5h61rEgc4koRlUlwYR5ZqOtbbWWNI2BMlCyH6YNo7BEBRl+Cf7HP9CyyGJT2v5c3gqV9DeTwoxhgGNQseOiVVO7AUGJ5PcNfxWA== 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=LHammP+sgZzwx1Fl4pvdeAtoi2GGG3ojJVovRK4zg/c=; b=IEE+hpgS2D9MRC+3vx/SiM/mcHBNZ2OLawlGCVrKY0dcc6re33df1ibd3BkETmvyLbaIcmzbu0EbruAOEfr/tyn2p0cGZqMK+GgPc84morlcy9eg/8Cebi2PsGQkYKtKbQgbhhJecQxQbOTf9O8eW6d6Y5CBWMJUbjssjgeEGT/SvmN8oPEREe0dh//C2c+AtJWUKvTx15Aij9nhT3H8rlgz6foBdqsvgJMm7AZcWRvWwvPJXhYuiz0uhfBw4GMGZm1kDQAUJRepNwQ/8z0iNqw9DRcHoKntTHB18sw+HRsK5HqtXRhF3+CeWi9JHZymi47cIMq3uCE+mJ0Cvy28kw== 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=LHammP+sgZzwx1Fl4pvdeAtoi2GGG3ojJVovRK4zg/c=; b=h0LvZbYtUB6mKZMYmGysu6SxlVwMV7hNMvsbKvUkQzXtlh7t5LKQsnGdbD73o5IqvjasOrk9VluBISns3Z7tbz2XPPHdzw02+ZeFZI4TDLRZqT+axHk9ev5bNUrPdQA5RE0Esn+1bPUfVb8wE3+rGfLRxDck1VXNaDdxRRjbi/1P2DYCGSahoYlj7HE32Hw2ezZobyixZdFk509EorpF5goLMzSqOnhqH0NKqd5jKTle8URkC+lA8wm8xI5yxjPYROcbzbNry1IH3nGNWLuVQxC4CnDKrP1bZ2yRGxSf9D5eQaVrk9zgQMYnqOxhqljug9FTZ1E18Kb/l6Z3Buw4aw== 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 SA1PR12MB8965.namprd12.prod.outlook.com (2603:10b6:806:38d::11) 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 17:29:55 +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 17:29:54 +0000 From: Zi Yan To: Lorenzo Stoakes Cc: David Hildenbrand , Andrew Morton , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Miaohe Lin , Naoya Horiguchi , Wei Yang , Balbir Singh , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 4/4] mm/huge_memory: fix folio split stats counting Date: Mon, 24 Nov 2025 12:29:50 -0500 X-Mailer: MailMate (2.0r6290) Message-ID: In-Reply-To: <721894de-1b36-419b-a3d4-0ab43d607d3f@lucifer.local> References: <20251122025529.1562592-1-ziy@nvidia.com> <20251122025529.1562592-5-ziy@nvidia.com> <721894de-1b36-419b-a3d4-0ab43d607d3f@lucifer.local> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0937.namprd03.prod.outlook.com (2603:10b6:408:108::12) 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_|SA1PR12MB8965:EE_ X-MS-Office365-Filtering-Correlation-Id: ec0904f5-1a35-4c4e-be3a-08de2b7f1505 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?utf-8?B?a3BXQ0NrV3JMOExNbTQxNVdYZ2ZpbnJqY0srdUJENlQxSkUza2llZFdwbUJt?= =?utf-8?B?bkczbnF1d3NZZ0EwRGs1b2dRT3R0WGxLN3p0MTRRdTQxT1ZwcUxwVm9EK05n?= =?utf-8?B?WnlQTjBZM2RoWEx1MUpVYUhnRk81UFQvYk10MUhIWmRnTTk0Ty93MjdhaTNT?= =?utf-8?B?bzh6REk0ZXNmZUZXb3FGdE9VZDV3bzdVWWdKdU9RNjhJZXIrYUdOL3czdjg0?= =?utf-8?B?RzE2MUpyaWVnaHovQXFTRkR6cldhdVJJOWtLN3FXTysxMVZuZHB6VVl4M1dT?= =?utf-8?B?dll3czR0dHgvMWppV3hlSlNxTVRub24vQUo3ZHRvaWNJcENUU2hlSnVZS0c1?= =?utf-8?B?ZnAyK0ZlVGJoTUVFUVFIZE5ibTdlL2x1K0hBbFg3TEtEcWk0VWpjSWdWVUNv?= =?utf-8?B?Z0tJK0NrVUsxcVN5NitXQzVLT0dVMjdFVjdxaVdEVFdQU1BseVo0RGErdlJE?= =?utf-8?B?aTBGdGNzNXRRTG9TR05ucFpEZVpYdk1wZitia2c0Y0doTElabCtGQUdhYmZC?= =?utf-8?B?WUEzSkpnQzg0WEdjSnJCZUwzaUdtSUpKcEUvaHFwSzRUNXNqSGI1L2ZLQThJ?= =?utf-8?B?S1FjQlpkSnE3MzlLcVp2Ni9RYTRSbGNMYkJQbnhtUzRzbWlZWis1aUkyZ1g5?= =?utf-8?B?SDlaVXN5YjBJSmNRUEQ3SEo5MGVyemhnSGZDL2ZhWVYvaU9ldC9teFJHTk91?= =?utf-8?B?c2ExMzRHblB6OURrSWRlM1lBOVZ6OHJpRUppaWlkbE85STN4Z1YxRjdwejFN?= =?utf-8?B?dUJTc3hLVnEvYW1JOXVSYlBVS09tV01wdVhWSlE2ZXFoc251a1pObHdwRzk0?= =?utf-8?B?UXlpRENrT04vMVlicjYrNWNJTGpxdmxvSDlQNERSN0VwWEpzMThxZzEyS2RB?= =?utf-8?B?NjdCTE05SXBaRU0rVmE2dVdXSU1SeXF4NXBCbURXUTJlRGE2NG9qbDRDUG5s?= =?utf-8?B?S2Zxd0lBMmkxYXVmS3ArcHdPTHd4RXlMMnZQb0d6ZHNIYmpVcWtYNDNNVUR0?= =?utf-8?B?Q25WMlNqd3BqZEZUaTFIOGd5M2NCeVlFSmNVT2x3TFE5ZVZJaWwvbmNWclFh?= =?utf-8?B?S005TDlzZVFib1dSbHhlODRJdkw1STlaMzB5ZUxkYVlIeXg3VDNEeDVXYU9x?= =?utf-8?B?alYwT1QyQWV3akRWNll6N2xvWGlIdjFWMy9ZT0duaUkxSTFXNXZvZGwzbS9Z?= =?utf-8?B?VEFNcFlCV2pJL3cxanN6eUxMRFJldDNSVUxOTlRsaFJ4bXJUNVo3OExKNGFZ?= =?utf-8?B?MW0ySlFqaFZkeGl1bzRINy9qTnNiRVYxRWJiTGpJdnBERG1USFM1ZkNlK1lK?= =?utf-8?B?NkpFajhwdy83bFptd1JJZFlTYWVwdW1tMGxnaWVmRHNycWhPNFdnS1FBNHBD?= =?utf-8?B?YWZjM2ZxQlpUOG5OaVJiYkZVUUZMbFFldWZKZHBNdHAvNWNPZ2tlSis0T2lh?= =?utf-8?B?N0hZcy9Nb1hxZWRSM3l4aUM5SnhYZU9MamdienJ3MXBFWUZxdHUza2hhNWow?= =?utf-8?B?ZmpDV0Yzb2RNdHg3aWtqUXFOLzQwQk9DK0lrZ20xd3dPcXZHOWhnMjNPVGhm?= =?utf-8?B?a0wrU1pGQ2FpR2xjUVNuNXd5cys5OGw0NUJYeW1aK2QxNVdvNjRvQVoybkU0?= =?utf-8?B?dVRPYVVrVXB0L0RCSk1MQXUxWnZ6WlZsVFRnVWZKN0pOZlJFdFpTWGoxWFo3?= =?utf-8?B?WkRmc1loUTVlNDNlejRUVnFHajlCWllZTVdMbzZBWHlCaHF2NmpzU3kxOEU5?= =?utf-8?B?UHZFUGpaTWNPZDM1MUEwRUk5bitFdnpPWEhLWk5Vc241U1ZKY3pLaVZhb2sv?= =?utf-8?B?YTFhQUE1UE05eU5kdUxKQ1ZMY1hPRWRUOWpVbXcwbFhnMTNGQ052MTJkanpl?= =?utf-8?B?eUJvUnRqa1lrSXUrcTFDcUMwNzJHZHRIeHJhaisvNU0rd3pRc29JQ0NwRzdM?= =?utf-8?Q?a+nxWM7s1x3jGo6F1UjuOxcThMCds4V8?= 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)(7416014)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?U1FaS0g5MnI1d1QzcjhteUN3SlMzcldOMmE4L3N2WXRwRUVCK3kxV3JwNzhG?= =?utf-8?B?QnJRVUFmVk9WalRHYXpoUG0wY0hJcGNtaEt2MEdya3Ura1ZySThOZFR6cXVo?= =?utf-8?B?UkFZanVSR2x4ditHc3laUWhSMnB2SVJ0dFpINW9ndWVtOXRyNFpxS3dDdGUx?= =?utf-8?B?SEI0N0ZHSGdRT2VvN1ZRMGM0NGdUV0lacXRFMXJDekpHd0RvV3ZWRHVCZ2xY?= =?utf-8?B?UXd2dnQ3V3c3bHg5TUhLTnBnQWhBUmt3R2YwNGhhYThDZ25pZ20zeGhJMWNt?= =?utf-8?B?amZTNTN5VVFqN2Qxdk8vK21MdzZZQkhhcVZQMVNjYzhGM3hHQmJCRlJQZ0ky?= =?utf-8?B?aXcrWWZaeElLRmU0UGRIekJyL3A5bDM2aHJSYmpXVWg0MXJxT1ZuVjdJQm0v?= =?utf-8?B?ckdMUUpxdXE2SVQzMG9tZXFJWG5waUYvVUgxVnB3SXlxN3pwK2wxVy9Wd2h4?= =?utf-8?B?V0lkeDFYakkxbHlveFYwWDVONHlLd3kwK2k0MjRRaWR5K1NTSGxQMW9sQXgy?= =?utf-8?B?cnNoVG92VUFyVDhjaEJrM3ZVTko5QlV6anZZWDVyYmZNOTh1RlhwZ0pNUmlN?= =?utf-8?B?YWZRS2R2dXVwZFFDOG1oM2cvZnI3c2NrWjBTOU9FTy9Bckk5YlNuYVRkTXJN?= =?utf-8?B?SU8vZ1ErRTZuaDYvdFJqRTZNU1QyY2JhMzJ2eTBDYmNYcmhXSDlDN2kycUc2?= =?utf-8?B?MDl2L01xczhCMXc5cHRIZld4QjJUcERIQ2hhK2tsQjhGQnRwWldsU0I4VzZO?= =?utf-8?B?SmJwdTRPbEZraTFRaDVQUktiTE15TzVjOHB3LzNOTjdVRCtQQTRST2FYWUl1?= =?utf-8?B?b2c2L0hRMVoxclJQV08rMXk5MjFOWmVnSHQwWWl0OFNjQTdvZHlSdFZJMUtL?= =?utf-8?B?LzBtUVc4bzVtMXpkbjk5N1l6dWd3VE54Z2lENFRvN29Xb25iT0RpeDFVSHNF?= =?utf-8?B?U3k2QTFva05WSEF1WHJWZDVPSFhnQkJXNnllNG1KYzd0Vi9UaTIvVE00ZC8w?= =?utf-8?B?VnhGSENlT1IvcDJxSGlWVGQ2NUdVLyt5NEJlSmg2bXdndlUrUkp6Zm92MU9t?= =?utf-8?B?ZVdPQUhRc3JNTFRpOHZrNUVzVDBOQUFaRkVMMGwxNWxZWkRUa0ViUzFvSG9X?= =?utf-8?B?Qnp4Yk9tNSswa2h1anV2K2gyM3VkWHBGOExmK0h4WW9vUEVHL29PbUxaYnlw?= =?utf-8?B?YStFZGxlMHh5bFNVMUhQeXpSOFE2WGtWQmkvaHhqY085MEp5UkJ6MHJablIy?= =?utf-8?B?RThPbjdzdCtFdjQ4eUdQaFliNzAvcWY3QVBsd2wrZVNzNUJWQjBLdVlYcjJW?= =?utf-8?B?aE14YmxlMHRGUWdOWXM5b1BvMFV6ZGlHclRaV2ZmRzZ3WWNNQW1kU1RsMW0y?= =?utf-8?B?cTN0NzRBdEhyTmxCdDB0TjhyeVQ3Rlo1VE04TnBWYkFYZmdNNyttWGxJbTBY?= =?utf-8?B?aWlscXpyVnRYNmt5eW1XZnB0bXdvS1puUTB6N3FCWUN3VWYxdmZGRXNjNjFL?= =?utf-8?B?ZGYrNWM4RmtxeTNmb0IwaDBndEZGVkl1WkgwcW5nbnd3SXNTNlYwckt5YzRU?= =?utf-8?B?SXhmVnlMQm1ROG1VeWxONVRxV2J2b2FyZGluUXlUaVlaS1U1OFdMbmNMUW8x?= =?utf-8?B?YXlqY0RUVnU2L2xMNGhVUmhzQ28vYVpHOHc5RlZFSTlhVCtlMEl6aERORmtG?= =?utf-8?B?QkxtcnRNT1A0Tnp1RCtmczF4NFJnb1VTYXJ2dW1MY2dUMkh5UmRKRWRYdHcy?= =?utf-8?B?TFZ4alV5QW5lc2VKcFF0NGNHeFdGSzZRelhNZ0JaUTVyaStWNWlqMElmanpS?= =?utf-8?B?b0JvNG5NOGtlRFIxUFpXY3pXMmttQ3Ntc011QlBxeTdZUWN5d3BQSnJmazhz?= =?utf-8?B?VlJ2cUFzWnlWTy84cjBlRlc0bUN1QmFWZzZhZ0hhbkFlVGtCT1hlVTBJSlZ6?= =?utf-8?B?em0vMW5HVzBoTVhjcUJxYkRVVGNVMkI1ZnFDd3NiU256KzloTlgycFkzZkVj?= =?utf-8?B?TVpYNkhDR3FRVVpwZkJiUlJyQVVhZjlndFJZSnhXRGJXRm5hSUY0S0UzWitw?= =?utf-8?B?UUtsTkhLNEo4cEladENWME5TZkpHMVExdjFSK0s0ekpYK21QdHRxUlFlK0lH?= =?utf-8?Q?JyWB3NgRbU4aFAo9lWF7H2/gs?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ec0904f5-1a35-4c4e-be3a-08de2b7f1505 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2025 17:29:54.8115 (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: lJm5XQOXKpSCFvS2X6LU0m1UAsC8qJ90Fv3YO2J3H5xTD7ZJUHed6HCPueCNkmCM X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8965 On 24 Nov 2025, at 10:21, Lorenzo Stoakes wrote: > On Fri, Nov 21, 2025 at 09:55:29PM -0500, Zi Yan wrote: >> The "return " statements for error checks at the beginning o= f >> __folio_split() skip necessary count_vm_event() and count_mthp_stat() at >> the end of the function. Fix these by replacing them with >> "ret =3D ; goto out;". > > I guess the xas_destroy() there will be a no-op in these cases! Right. And there is no memory leak, since xas_split_alloc() does the memory allocation and code after it all never returns directly, letting xas_destroy() do its job. > > Good spot, as David said, maybe one for stable then... not sure if necess= ary for > statistical stuff though? > > But at the same time, maybe users will be misled if these are incorrect? > > Has this bug been around since the beginning? Be curious to know if that'= s the > case or if it was introduced somewhere along the line? It started from commit 59807685a7e7 ("mm, THP, swap: support splitting THP for THP swap out=E2=80=9D) back in 2017 and more inconsistent= code was added later. Unless someone relies on split stats heavily, I am not sure we need to back= port it. > >> >> Signed-off-by: Zi Yan > > LGTM, so: > > Reviewed-by: Lorenzo Stoakes Thanks. > >> --- >> mm/huge_memory.c | 14 +++++++++----- >> 1 file changed, 9 insertions(+), 5 deletions(-) >> >> diff --git a/mm/huge_memory.c b/mm/huge_memory.c >> index ebc3ba0907fd..a42c4f29ce4f 100644 >> --- a/mm/huge_memory.c >> +++ b/mm/huge_memory.c >> @@ -3954,16 +3954,20 @@ static int __folio_split(struct folio *folio, un= signed int new_order, >> VM_WARN_ON_ONCE_FOLIO(!folio_test_locked(folio), folio); >> VM_WARN_ON_ONCE_FOLIO(!folio_test_large(folio), folio); >> >> - if (folio !=3D page_folio(split_at) || folio !=3D page_folio(lock_at)) >> - return -EINVAL; >> + if (folio !=3D page_folio(split_at) || folio !=3D page_folio(lock_at))= { >> + ret =3D -EINVAL; >> + goto out; >> + } >> >> - if (new_order >=3D old_order) >> - return -EINVAL; >> + if (new_order >=3D old_order) { >> + ret =3D -EINVAL; >> + goto out; >> + } >> >> ret =3D folio_check_splittable(folio, new_order, split_type, >> /* warn =3D */ true); >> if (ret) >> - return ret; >> + goto out; >> >> if (is_anon) { >> /* >> -- >> 2.51.0 >> > > Cheers, Lorenzo Best Regards, Yan, Zi