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 E0ACDC28B2F for ; Fri, 14 Mar 2025 23:15:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DFA4D280003; Fri, 14 Mar 2025 19:15:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DA993280002; Fri, 14 Mar 2025 19:15:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BAE71280003; Fri, 14 Mar 2025 19:15:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 97FCC280002 for ; Fri, 14 Mar 2025 19:15:34 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 3A575141368 for ; Fri, 14 Mar 2025 23:15:35 +0000 (UTC) X-FDA: 83221715430.30.E1086A7 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2054.outbound.protection.outlook.com [40.107.236.54]) by imf15.hostedemail.com (Postfix) with ESMTP id 60A71A0003 for ; Fri, 14 Mar 2025 23:15:32 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=eDy6X0Qg; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf15.hostedemail.com: domain of ziy@nvidia.com designates 40.107.236.54 as permitted sender) smtp.mailfrom=ziy@nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1741994132; a=rsa-sha256; cv=pass; b=0hIZ85WdUHf7c8slihaT1nV7thXI8tMLVVIYaL4r4G+U43Ls0K5tSuzzHyQa9D5xspmVcN 4JFf4LExpMIo7eV0Bnic/XcBGeb+NkR6Mu5VJRgUc6DjiDlSjbKDXZOyqdzdPXrvHJ9b43 8SXobL70FHpQqfskxy0ZLo9+3ANsPb0= ARC-Authentication-Results: i=2; imf15.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=eDy6X0Qg; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf15.hostedemail.com: domain of ziy@nvidia.com designates 40.107.236.54 as permitted sender) smtp.mailfrom=ziy@nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741994132; 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=j2IafjtomN6njZOtJgZL0VmxWsJG1iAn0AnTDhdFx2U=; b=wBQ5v+JrpmkxGRwGJzEv8PyH2IcL5vMhETOqS0qV7iQXRZYIJYd1KLYHl8NdP6FQhWnEkE vBxDBEbix1WzoTVnfUmLdyPC4jazF2OunJEwUt+deeblB87nDtr15J96PQj1Y4+uuuQ3+B j1V3QMVtmkyYog7FOEgqREywukFSgEk= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cpZ7266P5RaA+8zFCDurKUoZ0KJsuCgdLTR5kBD3WuIsIErFjZvZzD58W+6yab15Ter6UhwSPQMpfqD1J2BpLokMmy3dZF7wwLKN2jHDBPz/ZFj514eqdPSHpMPHhhi4GytX6FrWBDf7q9J9Y6rKt+n6T7RAAjayqmn+ByyYsk+5ECDkGcKcBwX6nEB8MzLlTFbd1vA+RducpcBRve4nq8hKBNHqd17PZiF4CMG4Bl6+KrdjIfSwnux9fNrRQ2UJbLKLSuEXOW4Yjxc0Wi6gJ3JaF1y49Zq4rEJjpUmLn5BgBaOje9rXy1Nq2HH7MXJBeLHZzpLUmBS+wYSxnllC9g== 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=j2IafjtomN6njZOtJgZL0VmxWsJG1iAn0AnTDhdFx2U=; b=eX17Rf25ToW/yGjJfEoyj6MESUGCBg1+mJTSVKuDm1h+s5QjUL6awvVPpufp4aSr2JdPNw32+4PFmZdZyy5dQqS1Weky+Af7uiOagDB2damrH+qUXmvSlWZiusJ6PJIoATO3XWxp/Dcdnhew3lUAR4T57d5XHH4r+g4H4ZtIcgXDoU6IVNdduMQiz9UXkdJAo+9JAj2yaqFIX+tJ7Zg5BaL4vUJxgxmkIvza795Qp4hFSE0s2WOb3lIc7l2d9hy0uNCD7fJwdHp1ryYy4XbNnvxQGRGOuWGfbKREjfYt8Yo8/qz+r8xscAkd18C8sGwgpTVR22KfdT1WqzMWRE9aMw== 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=j2IafjtomN6njZOtJgZL0VmxWsJG1iAn0AnTDhdFx2U=; b=eDy6X0Qgma1hEa90aP9EnOqrBRCn9B0xxrytYTd2qD+mkDUgFHInss7fhsd88OnWXGOIPC1u7U+4pS1OEDeooPUI4MTc3IRpmqadIrtoVvfG28WfQ7QKvF4km90led4H/WOJxhkdYNdWr2u0Q+XEp9Op2LFAao9nu1b/1be6CcAQzvccYu5LgKkffv60CgsfpNxNNgfliwdFt4PBQ2KUtpX2YmiMSO3qoRntwhWQM0V+U1nTf4p1xqrKRH+TAUhJK1tc48OvEJbj1mKr1nDc6X9RMkCc266fHuhEF/doycgGITtUaXDOJU0RnRzFrt7pSZlqLJlP6gs/oIb1p0Mj6A== Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by CY8PR12MB7265.namprd12.prod.outlook.com (2603:10b6:930:57::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Fri, 14 Mar 2025 23:15:27 +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.8534.027; Fri, 14 Mar 2025 23:15:24 +0000 From: Zi Yan To: David Hildenbrand Cc: "Matthew Wilcox (Oracle)" , Andrew Morton , , Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song Subject: Re: [PATCH v2 1/5] mm: Separate folio_split_memcg_refs() from split_page_memcg() Date: Fri, 14 Mar 2025 19:15:22 -0400 X-Mailer: MailMate (2.0r6233) Message-ID: <6F69A825-CF2B-4065-850C-C0283C3C8F41@nvidia.com> In-Reply-To: References: <20250314133617.138071-1-willy@infradead.org> <20250314133617.138071-2-willy@infradead.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0809.namprd03.prod.outlook.com (2603:10b6:408:13f::34) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB9473:EE_|CY8PR12MB7265:EE_ X-MS-Office365-Filtering-Correlation-Id: 69eac552-9ca7-4d6f-3a2d-08dd634e199d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?ekttb0FlN2VKKzZ6SVAvbWZOYlBuRjBZajdWakF4c1EvR1VPYk5zQytaQ1hv?= =?utf-8?B?TTdSb1ZFdTAvWHV4am0xSFRuZVdVdW9ZdE12bG1kL2FJNDZWbVdDN1hVL2kr?= =?utf-8?B?dmhzeFJGVTZleGdjdzQycXpjMytnbXdZS3NnL2JFdUNYVHUydFNVVGFHeHNv?= =?utf-8?B?TW5YUlRFcEdmcDBaWnM1WDFsS1Jpa1lzcWxTMnR2NGRzNlg4UlczeWNKSlFC?= =?utf-8?B?TGE2YmVUZkhqU3hvaFhTaEYvWE4yeXRhVytXOGVxTnJBTWc4aVhKWXlrSnQ1?= =?utf-8?B?VXBsbEZFeFNxWCtXUnN4bmtEdGxFcVpBSUdRK2ppRVdBaFZoZExOQVJPdGtn?= =?utf-8?B?VVNUb2lFUW1HMXBmR3RpbE9PTjBFMWprYlhRaEdkLzlOQitQWitleFFoRjVW?= =?utf-8?B?dWlKRzlXekdoUzVLRm12anpCTExJWGtUWjNxK1JtN1EvWmVnbXFTQXhmWmRT?= =?utf-8?B?U0JMTzB3QWVnS3BaaXJiV29ZMis2am9sTmYyL0lMWXpTeFZodklDTitkT2ho?= =?utf-8?B?ZjlUTUNnZGs2THVBMy9JNGZoTW8wOXhKdGNISWtjNFZUdXpZMzErQ21INi9V?= =?utf-8?B?SXJ2cTRjeFRRc3M2VWdXWXNVVVhEY2tmTDdzZEJab2FmR2M1MFdYaUw1aE1F?= =?utf-8?B?Qm1NdDlnNTRzay9MaVgrSkR3V2liMXFNZ0RDQ0dzRUV0TUdDWGhVMU5nUndz?= =?utf-8?B?VzI2UUs1ZldMZ1BZTUNzeUpueEhDc3EvZVBpSUw0UmhsUDVrZUJoT2ZoOHRr?= =?utf-8?B?MnoreDFVaTdwaVFWU1N3dXFDT2ZpRmYrUFBNYnhTNEdLT09Oc0JXMXBhMm9U?= =?utf-8?B?NU9hQllZUEJyUGlPRHlLSTZOSDM0OUVlYjFxdFNJdCtIRFdRYUFLZGk3MGRx?= =?utf-8?B?RExpeitZcE0xUGQ4bU0vNVpPaTZ3YmtZcTFQZXZ5MkNSM3NheDI2TEg3R3Ns?= =?utf-8?B?T3VjdXIwUTVSQytpd2NKc0VHT2dBYitPN3J5WDJnRkJOMUFKK0JoSFFCeG05?= =?utf-8?B?eFU2YUlhUE9wMVV6cGlDMk5jbU1DLzNVcUV1NWowWUpKbHZtV2hBWGVnb2NH?= =?utf-8?B?WlpmdXpuUFdTV1dNOGc5Mjd4K09kL1MwVXJla29HQ3RxU213TmhUVzd4aVRU?= =?utf-8?B?bDNibHNuQzVvbU03dzN6RmQ3OXpKT1hsbXdJNUNUNEFNd2w1a2UrOHYyNkY3?= =?utf-8?B?K2Y4MzVrREpRRjY1NE9JQzV4SUliTEFobmZwK1JRVnJRN0dycnZxTkJNSUUz?= =?utf-8?B?VWE2eFNXeU9EcW5hRTZtNmIvS29UZHJQL0RoSGVJZC92L25LcHdvN2plalJY?= =?utf-8?B?cGU3ZG5SZHZwenBwR2FOaHdDMUhVcWc1aHR1NGIyZHhPWmQ4NGpOZzJhR1M5?= =?utf-8?B?MUtUMisrbEtrLytheFVXeWprYVI1R0I0VFVMUWcvaXZZTTE4TkJOSDdtM0No?= =?utf-8?B?YU1qMjYyUUxnaHdiTXN3S0NOWWJqUFh0TzdDcm1XcFJQQVVpVWtMWUdjQTdm?= =?utf-8?B?R3dCd1V6QmF2MWR5a0NJczllNXBDOHVTVk1vMVN3aWNMd2dWemF2UC9kMy9N?= =?utf-8?B?RkR0VWVGN3JQWUl5OU5tMTIyenNiSnZXTDdvTC9zWGRZMVBsQ2NhU29XNHdo?= =?utf-8?B?U2xDMytucjZKdnROaUNmYlQ1bzhUeG1FZDIydGtEOXd5RFBXcFR2TFNhVG1n?= =?utf-8?B?UjRTSUQ0dEZIYmNTNWdLN1UrMjNFNFRTckloSXU3NCtaM3RsT3ErSXljcGFz?= =?utf-8?B?RTNlSjhjVUFmNy9BREUzQ1BsNEJKRnF5TUdOZUpOYzkzZVJyb3RRM2d2TGdz?= =?utf-8?B?cTVXMDlLaWVJUUZ2UG12YU8waFhaMno3SVlVbW1kaFZ5cmRMYWU0R1dCK0JO?= =?utf-8?Q?Eniz0/9pZNQDI?= 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)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OFlRcnZDcllmN1pOeHlMYXNGZG5EeE81UHdOVkpOaHR6SmZ6VnZXQ0tXTTkv?= =?utf-8?B?cFY1RkFoMy9XbEZOb0tOd2NpQmRBVVE3WGVnNEN5UjVFV3oramY5OS9xbkpG?= =?utf-8?B?NXAyQ1dWcGtPYk8xckRsb3UrbHd6NjNRWDNsQVYrY0M5SXUweEs4S2NuM21k?= =?utf-8?B?QndDbGRXdXNPelpiVkN4cmEvTmwvQlNma1VFU2ExOXhoc1g0ZzJNOUgwZmMv?= =?utf-8?B?WmMrUE5uWDU1djZwbFE4dzl4TG81ZWphTUFtbi9tV0FnTDliM0d2RFlGR1dn?= =?utf-8?B?dVlHMTZLUWN4OWQzcEZuK0orUU0rVGhKc0gwS3pTK25kanUzeHJST1V2SHRJ?= =?utf-8?B?KzRRc2tLNVhiUGZCNU5BRDZsdmhmVm9NY0V5K3JxNGtrMjRuUkFRakRweDVm?= =?utf-8?B?Z0x6WGJ2R3lOL21BaVU1Z3FiUVBOdGVkSUtMWExPWHpReDdpM0VRL1hlc3d6?= =?utf-8?B?dUpma3dWTmJwTmdCUnpYbllkMFNkV1VIMkdPOVhzeDJ2WDJoOWU2ZjRrQmpS?= =?utf-8?B?WkRheVhTUVhXTkhiVkdBYkJzekQ5TDAxZ1pCUjJoVTRkajkzYWhnSVB5Q2M4?= =?utf-8?B?Y0dOeGVZYXE0M3FyQVh5M3c3QVN2WFBYQVkyQnFROTdtQ1FCN05Zb1ZLVElz?= =?utf-8?B?d3E0YitkVVU2NHhSU2VJUWdDNHdaaVBuNnRJWE9ZQ21qcE90Q3dQR1dnbXc0?= =?utf-8?B?VWlPOFJqdGFtQmdpMWNEWWx2VU41STVUSWRIRUZYWkVpWVljd0t3NzNUNmVx?= =?utf-8?B?b3hkZ3FYbEFvOXlWaFQrOVZWWVNwYld4U0hRWVF6S0ZwTitIbWc0QjdNSS9W?= =?utf-8?B?Vy92ZHZwa1NyRkIxTWxvQTJlN3JXTnBnZTZsdWZGMTlwS25zVHRjdDUySGNG?= =?utf-8?B?dzUrSk5sZVBhODI3TXFhK3ZFWEJvem45WC9LbkxEZ1BJS3RvS2FZdG1UcVo5?= =?utf-8?B?V3Q4RTA5a0U2OGQ1cnYrTWU1S3ZyYXEzcnp6SjRGUVoySUhCZjNKZDYvR1Qv?= =?utf-8?B?RjdJVGI0WVNQc2hYUU5WL1JCUWF6QW1vWFVJa0NsQUFGWE83M3c2VDllakFW?= =?utf-8?B?N2VOYTRpc1pnVWxISVgwYTh0NTJISUdsOG9zN0RoUStVaGJRZDliRlRqTWVT?= =?utf-8?B?M3Vkd3BjYTZvMVlIczRyb21MZjNlbmVvMVVnbGVNN3NaUkZBYVlOd2k2TFN2?= =?utf-8?B?MlJ5blprZEVxbUg1eXc2emxEYnUxUjJwK0RNbCs1YVpsUVVSNWxrT1JDQ0xY?= =?utf-8?B?NDJFVGhCc1Z4blkwcFpIYjJiZ3NyVlhxOW9LQkhJd3Y0U29FQWwrLzlyNERy?= =?utf-8?B?eTMxOUFGWDFOTVhrZTRDYUV1MnZEc2x2Wmc5TkNObDhhWTQxZFp5KzhuMmFI?= =?utf-8?B?L25zd1ZQdXNqODNKY0U3Yzhpa0RMZ3puUE5pc0Z5ZndibUxmVGZ2SEVBTlA4?= =?utf-8?B?c3JQeGRqS2MzZExIWnRkRUZKeWRYLzhTQXgxM1lzNlM4Q3dhdTBaS2NoOEg4?= =?utf-8?B?bmo3YkpOSStpVFd5cnplUHdQMk9xZGdUSURRWFpqSDBKTU1iR3AxYTFtMkhn?= =?utf-8?B?Tlc2Yy90OU8yTE1qVEZGRDRmY21iREFoMGYzS2tYV2F3KzE0ZnIyRXpvMnJV?= =?utf-8?B?SzRhTzBqcnNBanJXOUsxV0dteXIyUTEydXZVMG15enpvL3hxajlLZ0U2eHhX?= =?utf-8?B?OEMxaHc2KzcxalZETzlqYTBCY0xBcHRvcXVjTFhQRDA1Y1NmdEJDTTIrOEdG?= =?utf-8?B?N1JoQWRaVW9PRmRzM0YzaW5pNGQ5UndPYXZGT2VmYi81UGRlcmdQaE8zNmxE?= =?utf-8?B?aWVYazJ2TngwN2lxa1RHbXdvLytDOWQ5K3JXRklXdEg1NUtJRUhyeXc0WmNB?= =?utf-8?B?Nm5GeFNqVUpKMjJRVEhVL0h1WFYxYVlpSXFTanE4RkNDVVB3cUI4T3BEL2wy?= =?utf-8?B?dGJQN05DaXRMdHBFVlZ4SnA1L0g5djRITWZTZGdpZ0VYRTFFK0FqS0NYMEhK?= =?utf-8?B?UWRmdHF0S3ROTlg2UGd4TVdrMWlVOHREQ1hLSHZPRWxuRDJ0SiszTUFJdDht?= =?utf-8?B?Q1JzUmd1TXp1L294enBUb3R2MlBEK1lhSEd1aG5OYVdsRXlLTTZ5aHdGdEU0?= =?utf-8?Q?UuupRLS+4FN5grKDQdNgBEYZj?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 69eac552-9ca7-4d6f-3a2d-08dd634e199d X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Mar 2025 23:15:24.6307 (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: MjVTPt918eXiCMUFT+7N4DzkKt3mvofV5nGCNUUlHXwp0vcsbCgVwKhgCyI6e/jq X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7265 X-Stat-Signature: t1e31g4be3whe7wz34niu61rpexwgwk5 X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 60A71A0003 X-Rspam-User: X-HE-Tag: 1741994132-499872 X-HE-Meta: U2FsdGVkX1+XlWDo4fSNTbVvXKbj5zskLmzBa7CllxFskinhJ3UZeTaT9eAmrxTGR7XV4JxNnokiicW0lQ3OzBOHRf2eJVbwy2FkaA79/FUFcXvDxHvRYuLJg5dTa73AW6xL/dO37JHeCXcQCuwjKozytcrr2hRQb+jXpm4M0fn3i0au39cCJmw3080tlZwJ+kp+xfZu+AJN9BErHLocLeKkTVNiSxxFvznYvPVT1LXgizG/lSbGdeY+BkR5LX3Gl7znEcLqWm5Uzrs4S/yJCwAUL1o3+h02hEWAJamfyAJIr5ootIq8ZkDFo9/upKMp1raBxDjrpO4jPSv7ZmHOEif59V+QBTWBQyzsN5Anns7Yw0GwYKyjp6WQEP6aWUm5q42zlZTgA8d5HRsRFe1u81wFhYZWhUAt/p4cwUfiRbaU5DEIrzWwcGnt4r02NPBzb4Fv8Kouv8aLffipJ+nPLDFx56fykduqbaunwdr1eNwexGu9v9VTDhvdU7HGckdBJS0kiCG/Pyz/I6IGuYiDxvzPj7EvLkgB117iOe5jldmKRQt1vR7Fok7iWSBDE4uYJAlvRUX+JDmwbPwu7pBrr1EvGXuYgWgeMQqN/dtHNDt7tCNJ+xgwNE7KT9Gjp3IpBS0Nvivklp3g8ac+/9aO00WFmcT8JSUG7c2tZCTDXbRHI86WrNfqvxjnOXuIHQ/9O7ob3PsU/GO7+v9U24JMqW7cLOYKmyGortqMB7qkh9MgURxaCs0Xo/5r6ENh0ubmCwEtshI8h9CD+Ld2V0aen5NLGBIMFS6vEhWqg+uP32UY0CQpsYecnpmHrscz/tpV7E47uNNSMGomh9jgyBV39Y0//PHizdZXs3AWLp9XpOvsil2zPi117qEjTTii+JDCHwSXb+TZLx3V4A6mY55F0fOLkR7xCbRA1S7bXXLhCrKhLLYHPqiQTHcS7wjF/3OP69uJTllF9TE22exlAZ0 wxLuORl+ YFc0Z/wgU/qBfNXaKIdvN/UvE8nvzY1aca+05iOov7cnkDv6UxWhOeFTeJ9X2EIRQ3O+XCNrqUEi5oGhB2nVzny2NlMs2y07k1BMnc8MDWtlApbmTWB0xPXZhH+2j+qlvXUPjHW71i8W6zdVYm9CphsCo4TMfrsySIzVScaNJyasNZgdcY7lZrciapYJOPjyQeyaV5iJJaYU/vOW2favA4KmFgPZy1IkYNDlm0pL/PwwPuLYVdbsbp2N1WKL3w1ULTp+RpfuxPg6PswkXuEepQUCn3JdR/Xj7bdaQbuSbjWqbykFUfNMez5j645Vyrwb+b+Ud6PJ4hqhy3ZO0yp2b3dfuIoY7nYJqtvMNZIfsSs/uQs3MGnU6Fek+dc9INLPSxUL/0EMpxUfsfPHu5hD7O1mR8U0+WA1Qscgz5IAC5jSANWx2ZS24oBTFUVtRwMasrmARXe5QHd6QC6smIdipLf+ZDwgR5pqVnGpqYbdVN8pFloiJfv+4A1JUm6hpLfCegg9ByALEzDOQGmyXHStHWHdQyrnZ98aYW1RxgyGBAXoT9qgQ+TyEmf+Gcg== 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 14 Mar 2025, at 17:49, David Hildenbrand wrote: > On 14.03.25 14:36, Matthew Wilcox (Oracle) wrote: >> Folios always use memcg_data to refer to the mem_cgroup while pages >> allocated with GFP_ACCOUNT have a pointer to the obj_cgroup. Since the >> caller already knows what it has, split the function into two and then >> we don't need to check. >> >> Move the assignment of split folio memcg_data to the point where we set >> up the other parts of the new folio. That leaves folio_split_memcg_refs= () >> just handling the memcg accounting. >> >> Signed-off-by: Matthew Wilcox (Oracle) >> Acked-by: Johannes Weiner >> Acked-by: Shakeel Butt >> Acked-by: Zi Yan >> --- >> include/linux/memcontrol.h | 7 +++++++ >> mm/huge_memory.c | 16 ++++------------ >> mm/memcontrol.c | 17 +++++++++++++---- >> 3 files changed, 24 insertions(+), 16 deletions(-) >> >> diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h >> index 57664e2a8fb7..d090089c5497 100644 >> --- a/include/linux/memcontrol.h >> +++ b/include/linux/memcontrol.h >> @@ -1039,6 +1039,8 @@ static inline void memcg_memory_event_mm(struct mm= _struct *mm, >> } >> void split_page_memcg(struct page *head, int old_order, int new_order= ); >> +void folio_split_memcg_refs(struct folio *folio, unsigned old_order, >> + unsigned new_order); >> static inline u64 cgroup_id_from_mm(struct mm_struct *mm) >> { >> @@ -1463,6 +1465,11 @@ static inline void split_page_memcg(struct page *= head, int old_order, int new_or >> { >> } >> +static inline void folio_split_memcg_refs(struct folio *folio, >> + unsigned old_order, unsigned new_order) >> +{ >> +} >> + >> static inline u64 cgroup_id_from_mm(struct mm_struct *mm) >> { >> return 0; >> diff --git a/mm/huge_memory.c b/mm/huge_memory.c >> index 14b1963898a7..3e5ecc8f3d13 100644 >> --- a/mm/huge_memory.c >> +++ b/mm/huge_memory.c >> @@ -3394,6 +3394,9 @@ static void __split_folio_to_order(struct folio *f= olio, int old_order, >> folio_set_young(new_folio); >> if (folio_test_idle(folio)) >> folio_set_idle(new_folio); >> +#ifdef CONFIG_MEMCG >> + new_folio->memcg_data =3D folio->memcg_data; >> +#endif >> folio_xchg_last_cpupid(new_folio, folio_last_cpupid(folio)); >> } >> @@ -3525,18 +3528,7 @@ static int __split_unmapped_folio(struct folio *f= olio, int new_order, >> } >> } >> - /* >> - * Reset any memcg data overlay in the tail pages. >> - * folio_nr_pages() is unreliable until prep_compound_page() >> - * was called again. >> - */ >> -#ifdef NR_PAGES_IN_LARGE_FOLIO >> - folio->_nr_pages =3D 0; >> -#endif > > > I remember that we could trigger a warning without that, but I don't imme= diately find where that warning was. IIRC, if we'd split to order-0, page[1= ] would have indicated that it had a memcg set, and something bailed out. > > Maybe Zi Yan recalls where that check fired. The error I encountered is different. When I rebase my folio_split() on top of David=E2=80=99s mapcount patchset, my original patch used folio_n= r_pages() after memcg split. Since memcg overlays with _nr_pages, when splitting to order-0, folio->_nr_page is overwritten with memcg_data, causing folio_nr_pages() to return a bogus value. With Matthew=E2=80=99s this patch= , memcg_data of page[1] is written inside __split_folio_to_order(), so in theory __split_folio_to_order() can call folio_nr_pages() like my original patch. For folio->_nr_pages =3D 0, I suppose it is trying to suppress any page[1]->memcg_data !=3D NULL check in the following code. But I could not find any. > > In any case, if that warning no longer fires this is a very nice cleanup! Yeah, if we see any warning on memcg later, we know how to fix it. :) Best Regards, Yan, Zi