From nobody Sun Oct 4 16:48:18 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011068.outbound.protection.outlook.com [52.101.62.68]) (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 4DD832EEE6E; Fri, 31 Jul 2026 02:18:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785464304; cv=fail; b=i+GqKnVI300UkDMjPqg+vzX2ZV8LXwLqD84Z7wmqAiQ1iXT2GSXd1thI8c2I9+ax5KFTm1LhfXiqpUXllwyjdfgDz4dit6YCaVzVw/QneL0F4X0jgjlUpMJOlCO0BO7X2HiLkpID08YtnVWi7oMD3XJNBW+FaFuedEr/4wpsN2E= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785464304; c=relaxed/simple; bh=Z8lnlc+4pGNvqiMseKnSvzjO211k1d/PJ8UDq0q7Yzg=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=kvJg2n/CZH8M4g/L1tAPd5qOnFyhPCBlnW9SAZDmLYVj9jCDmErEeITU/BPjbWN60yLc54Y8cXvoIytfRZZXemmxJTAXZkqQighnhQX1bQgkfXw+1IjBe+pU/0xQPrpRQjox55G7hr3/UT8dUzRmPo3hzlxav99OUSJa1ubBbLk= 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=WAnh5Bnl; arc=fail smtp.client-ip=52.101.62.68 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="WAnh5Bnl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZA7msslbx1TiE8RxFfRdAq5HV0QCTTo0BhBQDihkVOR/0jbE2xfHTU7YGsgpg4Qkq91FNi/xfAmNxLnSAQhF3psIvBYy8BNsjjYTxHa+LYBpB+jNpVCLUgK9kGJkcAI+qDCE1PuoOBxjgClfJ5AhHwPKCM9mMlB5attpfccjwsmuqd1anY5g6Hx0A8HTIBYrDlTOfTQd9gBov/TELy8tWkvrTUezaCC0IDfkPU9SsnJQXCpjjme5aQHSrg+gAmEU6px+WyM2SFZE18zg6B8G8J1QeFB3LYaXQprHhQrC/SpFZ3/OEjhGy+wf9/LpwH+vNSOWgZAADm77YhV/LaS6GQ== 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=lY5bwpAnESOqNmfmI1rLpTXinTPe7cQ87HqGs9331QQ=; b=RVmppAXMM3FNSphJYqo0c1/ECmubgw3PivaLQUZhSQwINH0qJnUv9ZPk2wdgzaKcsqwpyRQORo1Nnzne61R8MQkijSIdXIOgTcSU2lyFDB0gn9gbNkZWmILBIcs0TSZBcAyKFdL+kfrarrTsdWsWgB9wV7ftFR4bNm+vCWmy5HYGn9JBudL+B3lhu3i/sejb1ldFIJ28I+C33f/6atLv9k1cubnL8xdOOiOPHuWnd8yptt+8GlAskd0sYDS5abWh/8pAR1izEBiC5e++nTsofp0Qij89c6FnEgsbQ6EP5Nf75TZZmVplERXLJZRrEFwsIpLGGu9kjy7wBN/ukJpO4A== 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=lY5bwpAnESOqNmfmI1rLpTXinTPe7cQ87HqGs9331QQ=; b=WAnh5BnlpIvUHti0K/lHT428Phd0vzqZogyl4RsMlPjZ3EvbVz14C63FEuZ8GHMttLSLAG+w5hCK5NeINMB5Gl18A3oGdiBSyFycnxEaiIPjB1MYq30RP65mWOKtWrRYb5Cj+W41TkKIavhoVDUgxmPdvdXl96bUcpt55gwebVP9lqYYK5sQEcfpLpxuBdW3zHU0NtGjLy1RdfwnbO3lkZYDluuA2cpX44meVXvLRWJVfxRN7rDmuLwhNIwSieR7niEmQj1cIPvhgameXc5SEA3mGBAhB78YP3Y3EOiv38TOL62NfuvvSZNx8YK3fwb+55kRximtGN1T4tjefVoGKg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by MW5PR12MB5652.namprd12.prod.outlook.com (2603:10b6:303:1a0::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.15; Fri, 31 Jul 2026 02:18:16 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0270.012; Fri, 31 Jul 2026 02:18:16 +0000 From: Zi Yan Date: Thu, 30 Jul 2026 22:18:00 -0400 Subject: [PATCH v2 1/2] mm/huge_memory: use folio's memcg inside __folio_split() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260730-add-gfp_account-to-xas_split_alloc-v2-1-5a56c2361d85@nvidia.com> References: <20260730-add-gfp_account-to-xas_split_alloc-v2-0-5a56c2361d85@nvidia.com> In-Reply-To: <20260730-add-gfp_account-to-xas_split_alloc-v2-0-5a56c2361d85@nvidia.com> To: Johannes Weiner , Andrew Morton , Matthew Wilcox , William Kucharski , David Hildenbrand , Lorenzo Stoakes , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Zi Yan X-Mailer: b4 0.14.3 X-ClientProxiedBy: YQBPR0101CA0236.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:66::33) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) 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: IA0PR12MB8374:EE_|MW5PR12MB5652:EE_ X-MS-Office365-Filtering-Correlation-Id: e0160c53-3e9c-4e89-bf9b-08deeea9fae5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024|23010399003|18002099003|22082099003|6133799003|10067099003|5023799004|11063799006|56012099006|921020; X-Microsoft-Antispam-Message-Info: tKPw1+po71FhGSUCIdRH4UunC79TEkbStKohyrogOTPWzTWG4cRTI/9CnVxRgHllSzz0qmneM+e5/dfJyXR3ZpFMAEg2dW3nyx3vHYDrcCs8FH/dkyjOLMmRH3lZsU5+4q08YFwYH6s9gtRBGr6Lnny4zpwMxQLtKVdEl2dKt/GyN3gKJqMM4tmB5hSDD2OM7Lp59kQ0grTRKlTXybj4x3E7+s+TjN7CbfY9qYvWvJ/nGxKLvIdLtetYn6uFAKYnZU4a8V5p1X6qeb+6Np5lYASq8p8kLAjlEO+HSNk8EFUvI2IduStolvMmWn7veh/eBp7Fqnyt3OQF3VOU7Oq00AYksWQo1Xi7UcPp2LZsS88XZvyKJU7UEvSgQnKdDbz31O/OVlBPxIFAA6w/Z8Z8WjzvbSCoKEQdC08bkfuRS7OMJxXn0zijjnH8GpOC5YMy3pjpNff51ZLI5xEkiptSIfiIbTtpAS7g0PcU3CLwDRc5B2mMg8M9zDBJ70hqRlejY0YBahHIAec995p3KNC3BMm5P+vEhv3ISDwwILxc/MruXhiExwj76Yr2+JPUv4fq2xPtkYWfD2FV4au9QAkZiAqyQ7s5bXGcNbiT1z12V4G1mEcMt7qhgW6+/3QZU9Hmwjnxbqh/XZdrW/rLaetvJDWwiF3UpInwc2mkx18c/CMrRlqxFoxFuSFBxbLDQPxjmmv7fQfgQsTIdcHtMPosGQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(23010399003)(18002099003)(22082099003)(6133799003)(10067099003)(5023799004)(11063799006)(56012099006)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WUhqM0xNdTZ4SWZsVm1MNld0TXJ2K01wUjB5TXVTdWxqdmhCd0Q2bjJZNmpu?= =?utf-8?B?czBLZ1N0MXppaW5sSnc5VW9sOENwNUp3dGY0RGg0L1RwR25zNWVJekN2Yk53?= =?utf-8?B?ZWN6cW8xTVFIaFpRY041RFdZeDAxQ3lxdjMvREk5MnR3dXZCQWEvLy9LM201?= =?utf-8?B?V3ZaeTZVQ2ZLa1N0MVFleFh4Rytzby9XMlVTSk5PajBiRTBiYnVHT2F4aFZK?= =?utf-8?B?U1hHZjRHWEEyMEl5R2xJQUFKRGIwYW5iUGUrY2RuQ3lFL21EeWNoYkdtV0lD?= =?utf-8?B?V2h3WFJjZWF0cStCcHVtMXRLSFRnbGdub1dmdWVYUSs1QlpCZjl4cXE5Ymdh?= =?utf-8?B?Y1YvVG1PYnYwNDh6MUhTK1RzYWNSOEtSVUFraUl5R0IxQXRhWFlRTDlMUmRI?= =?utf-8?B?S2RYUGpPeXFUeU9wUlNlUjY4ZFp4aEZiV1RaeHVJUDl3eUdUMUNMOEVLZHJo?= =?utf-8?B?YytGME1BT2t0L01ubkN0VmpQSVJ6Vkg1RTdUUHJBRG8xSlQ1U3owV3NtbDhz?= =?utf-8?B?Zm1pWjlyYTRGU0dLUnFHclkvb2M5MGVBdGxzV0JLanRGUXJZRkJSdmlnNzN2?= =?utf-8?B?NjV1b2gwY1lEVnFjRmo1Y0hVc3JJem1sUXlKWC9MTDBmMjRVZUp3RXJwVm9h?= =?utf-8?B?NlliWWFlLzNWMzF2WHpkOUJZQ2MrOUZ4dThCdFA2bXVzMTAyN1VXQzI3UUFX?= =?utf-8?B?ZHp0T0dTL1pOVmxOMldXbEdFQVF0Z0tocllLNGZaT2FUWkVhM2tLay9GMjgv?= =?utf-8?B?VVVnQXpDRmhTTVhWNzlqTllMTENiVXJTc1JNK0VYKzdCeW5QeVdHOGFYNGZG?= =?utf-8?B?ZElNQ2FKREk3RXhHS1hBTEt0OTdlUURlelMxS3U1S0JXSTZkMURaVkFlV3Ni?= =?utf-8?B?VDN3cjY1YnVZaGcwVys3VUEydTE3clM1NlZqbHlucW93NVBkU0N3NmNDU3Qy?= =?utf-8?B?ZkQwSSt5anRvSWdBM1JLY2dvaE4zWTVwdnplQ2NqS21pOWJER3VPVjBLNGpt?= =?utf-8?B?blZ1OUtObHErL1FJQmNrRGtlV25rZm9qaFc3dSsrSlUrVDRvVUxYVkl3NG51?= =?utf-8?B?TGQ1NERIb3U2MDkzYytNNFJzTUtkM0FNb2JtcnhMMmVZVUkzeTVFdmxyajlp?= =?utf-8?B?eTFMNlliZjVqQTk0TXY5aG5maDVGanExd0dWZkJSaUZUSjhqYm5aVXA5eXlS?= =?utf-8?B?RXp1NXlZZXpDQ05Ua1B3SnlSSFpZUkJUczFyaU1nZ0syRlo3c3M0NG9SUkVJ?= =?utf-8?B?M3JGV1lPTVErTlBzZUZtWXNhNUZOdm1mOGlmcythVnNlZ212SFplTmtqNTVO?= =?utf-8?B?NDEvdzVoTkdMWVQ1QzNmN2VENGV6Ui9hd0VVSi9FK3VjbE9MbWdIcGtCd2Fp?= =?utf-8?B?cVk4RmVOa2dleS9wbW5LTEVwTUk1eTR2bFhLTGcvVnNFWndxWXkvYU5rcFZ5?= =?utf-8?B?WVdZTXZkL1RrcmJnU2l1ajhUb3F3K3B0OGZVNXNVSWRtaTQyenpILzlEM1Q5?= =?utf-8?B?Rno5VGpKZ3pMclI2cC9lbzVrSk9YeUk4aEZJSWNPTnRoTkQ3QUp0aGhCUTV3?= =?utf-8?B?UjR3L05SSmd3Z1FqNmlmS0hkbEpocXh5VE5NZ2xOUTBvaWZqQk5mdzNSenZC?= =?utf-8?B?VXpSNVpQVlBqLzZMWkF5dzcvNzhMcTRzcnlCY3ladWFBaE8zeGpoM0x4SVU5?= =?utf-8?B?MVp6aHJWSVM2YTJXNmkrbWFqemgxbTZrVDQrRzlTSDd2T1ltb1dXeXpyU0ho?= =?utf-8?B?YWxGSzl3dDZ1QWZ0djlzWEh4SmdPT25VdmFSU2FVbWVpNjU3aTRVWFd2Q0ZH?= =?utf-8?B?ZmgvTDUxelZZR0dKamE1MzlOL2hjTk5ScTdMV3lOakJtS05WMlVLZXM4MzZJ?= =?utf-8?B?aGlRdDZGamRPYWUrTnkxVWIyZjBZNEtVRUoxK0hvMWZGamV2b0xUOE03Y01G?= =?utf-8?B?Mm5MWUtYY3JGcUdZZlBBMVBkcUVpWHpldGZjdW1tOENHOXN6b2hKMXRUSzAy?= =?utf-8?B?SFRpSGhVYXhRaVN6TU1Va0M5VlRPcUNtT0VVcCtjMnVpRytpUmxPSFJ1dFJv?= =?utf-8?B?a1lrUWZEY0hZenVtdk91U3liRnB3MUdKUml4RzlhVUkvRzNpdjVJb2dRS29m?= =?utf-8?B?K25TaDJuMHpHc29QQUZqeTI5RUhkWlZydDk2dXAyMGo4MmJmYlFWZ3ZzWUNl?= =?utf-8?B?V3REWjBKbjN3d01tTkU4QzVMQjVCbERTUm12QkozSVB4elk2ZUM5Wk45TThF?= =?utf-8?B?Rld4MElFcXVlalVDOEhlTHZhSk93dnRYMXF1ck8vZG4wZVBJK3ZnazRtbUM0?= =?utf-8?Q?/Q4v95cIjCZTM6wCKX?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e0160c53-3e9c-4e89-bf9b-08deeea9fae5 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jul 2026 02:18:16.0577 (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: vMD+AG4H61VqQYPMWghJLuhT9gXxZQ18W+GpRKOZ6DSeJ3D8NQQUTJ+fCgJAL15q X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR12MB5652 During a pagecache folio split, an xarray node allocation can happen and needs to charge at folio's memcg instead of folio split invoker's memcg, because for example folio split can happen during reclaim and reclaim's active memcg might not be folio's memcg. Switch to folio's memcg at the beginning and switch back afterwards. Suggested-by: Johannes Weiner Fixes: 6b24ca4a1a8d4 ("mm: Use multi-index entries in the page cache") Signed-off-by: Zi Yan Acked-by: Johannes Weiner Acked-by: Lorenzo Stoakes (ARM) Reviewed-by: Baolin Wang --- mm/huge_memory.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 04e8a6b553435..b9c2d8908e564 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -4063,34 +4063,42 @@ static int __folio_split(struct folio *folio, unsig= ned int new_order, XA_STATE(xas, &folio->mapping->i_pages, folio->index); struct folio *end_folio =3D folio_next(folio); bool is_anon =3D folio_test_anon(folio); + struct mem_cgroup *memcg, *old_memcg; struct address_space *mapping =3D NULL; struct anon_vma *anon_vma =3D NULL; int old_order =3D folio_order(folio); struct folio *new_folio, *next; int nr_shmem_dropped =3D 0; enum ttu_flags ttu_flags =3D 0; - int ret; pgoff_t end =3D 0; + int ret; =20 VM_WARN_ON_ONCE_FOLIO(!folio_test_locked(folio), folio); VM_WARN_ON_ONCE_FOLIO(!folio_test_large(folio), folio); =20 if (folio !=3D page_folio(split_at) || folio !=3D page_folio(lock_at)) { ret =3D -EINVAL; - goto out; + goto out_no_memcg; } =20 if (new_order >=3D old_order) { ret =3D -EINVAL; - goto out; + goto out_no_memcg; } =20 ret =3D folio_check_splittable(folio, new_order, split_type); if (ret) { VM_WARN_ONCE(ret =3D=3D -EINVAL, "Tried to split an unsplittable folio"); - goto out; + goto out_no_memcg; } =20 + /* + * switch to folio's memcg as xarray node allocation can happen and + * needs to charge to it. + */ + memcg =3D get_mem_cgroup_from_folio(folio); + old_memcg =3D set_active_memcg(memcg); + if (is_anon) { /* * The caller does not necessarily hold an mmap_lock that would @@ -4231,6 +4239,10 @@ static int __folio_split(struct folio *folio, unsign= ed int new_order, if (mapping) i_mmap_unlock_read(mapping); out: + /* restore to caller's old_memcg */ + set_active_memcg(old_memcg); + mem_cgroup_put(memcg); +out_no_memcg: xas_destroy(&xas); if (is_pmd_order(old_order)) count_vm_event(!ret ? THP_SPLIT_PAGE : THP_SPLIT_PAGE_FAILED); --=20 2.53.0 From nobody Sun Oct 4 16:48:18 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011068.outbound.protection.outlook.com [52.101.62.68]) (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 04F8031691A; Fri, 31 Jul 2026 02:18:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785464306; cv=fail; b=NRN0yNCb0LCHgM3dk6o3Qm6qQEXZKKD8qrleF8HyA/ZhhljW3meR2eJtv8OE6fMu6a6bSEL3ADKCkPUqQPtl78zaDgQmEHmICPgJwW/QVInSDECbYPsuAhn1kUwarr9ws0rgJ1cURyasLTSiijnnFchlgV9jjfCIPwl2wXwj16w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785464306; c=relaxed/simple; bh=ry77rvWM9GIUxG4jvnGxQ5EDooZEs1mkI0xoyDNeMBw=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=rbGq56ZI1Po9s4CBu3XmY4pa/2AKWM+Q93cF/g0oWZSEVKq+/ZXx3pVXkoDdJRHM2rDartRZRUVTVpUBcIDLkc224YO/GBxnahPzNbnLuQ9Vr/Cfq53T6+xL/eXosaN0bWXtjo3BsuRUoN1wr9vW8z8LrCumTgYlsu20tTTjRxo= 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=mZxmaR9i; arc=fail smtp.client-ip=52.101.62.68 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="mZxmaR9i" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rON6dWSzaTqBJoI2hUBhvSTMPXxbmlEsGPSpWhSjsZj3aimiWDI4R8SzXRcdM/nxXVy3a+JJI10gyKL5xvozBFRnK9jBQNIRqirBuM8mRYvGtebv2PbmhzoE5xJ37lQivgugkXLVRP5Y3Xf0MTxdnVjO1pU7zHs7aXHinNSicJQBZybbw5Ce8H0bZBJ8qxrtmqc2vlUHQkZTu7ATfey6ZexKAga5DCNikNP++TlwnToZgOJeqBAwRVVXUSmQc2BTUBvU7XLPCXyaTEnFDAVUHFY6Cps7MT/mcsMimx7kjjjR0KNQ7yKhwqDiFNEowW8l+DdJclR8LeSZ8c4NB4NJmA== 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=PphJ9NepE2VwN79ksdoDYu/VU/jNjvkCl1RnbBQrGj0=; b=wJ024KLCMGuXHKP8dZeb88FC5fSRJshhe6LoHoCrRZZr9MZiIgks7TAGKTQJcVpEZMck7zpktVKg/ebvdsdKnG7vCeseyemMHML4LkZzq94DDgxIFg6SZgFKq2zo99If2StzkorNM7sBEbY4ZfBbiTkP6rCLOBF7PPtiIAcvv91U6Qyqjg1xW9YgHBZs/Gn+6SjOIygXyb9jzddpW4OBwF/Pb9L7rJyR0pJPt6c4wVKOGEJETV2vEIMyDALYBfiLPOLNES7MmopO+qvLQsPYalIujJ2tXoTfUBoopfksQim7hZ2bEJEC+gG74Kz0Dq26E5l51a8ctG7GTYsCCoqauQ== 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=PphJ9NepE2VwN79ksdoDYu/VU/jNjvkCl1RnbBQrGj0=; b=mZxmaR9i0F3nN0yLkOkR4d7ze5YugjitGVpuJcChwgR5tUY7ALjYVLRRezNPUM2lUkoQBx4NpAiiU1FLZKOmyG1xnnr0tSg+ywgEKr7OTrSjLwnjuxUsXQNwUJU8OyYiL70nU8ClzYxJcfm9e26oTO0ZLc3OlaVqwRmGmAuyoC+RPtUJi56YHwstnOZyIgVjmXFF6ZJKfoWOc4oWU5i3kfb6CCKmAb01ZIySeUIj+XJ4jzppx/w5jvNVrIEqU2yNtgrH1D7oG+2njuKfRlBWkxZvSvxnr0Ud21VDK3PtzAgjb7b3ejTmNIIMsnSFkFGSi2eukmennj0Q72HQ9D9ybQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) by MW5PR12MB5652.namprd12.prod.outlook.com (2603:10b6:303:1a0::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.15; Fri, 31 Jul 2026 02:18:17 +0000 Received: from IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16]) by IA0PR12MB8374.namprd12.prod.outlook.com ([fe80::d85f:4c87:ae84:3f16%5]) with mapi id 15.21.0270.012; Fri, 31 Jul 2026 02:18:17 +0000 From: Zi Yan Date: Thu, 30 Jul 2026 22:18:01 -0400 Subject: [PATCH v2 2/2] xarray: honor XA_FLAGS_ACCOUNT in xas_split_alloc() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260730-add-gfp_account-to-xas_split_alloc-v2-2-5a56c2361d85@nvidia.com> References: <20260730-add-gfp_account-to-xas_split_alloc-v2-0-5a56c2361d85@nvidia.com> In-Reply-To: <20260730-add-gfp_account-to-xas_split_alloc-v2-0-5a56c2361d85@nvidia.com> To: Johannes Weiner , Andrew Morton , Matthew Wilcox , William Kucharski , David Hildenbrand , Lorenzo Stoakes , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Zi Yan X-Mailer: b4 0.14.3 X-ClientProxiedBy: YQZPR01CA0084.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:84::21) To IA0PR12MB8374.namprd12.prod.outlook.com (2603:10b6:208:40e::7) 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: IA0PR12MB8374:EE_|MW5PR12MB5652:EE_ X-MS-Office365-Filtering-Correlation-Id: 90f9c159-a488-4af4-54ce-08deeea9fbd9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024|23010399003|18002099003|22082099003|10067099003|11063799006|56012099006|921020; X-Microsoft-Antispam-Message-Info: wbV48SsXj7DcQ9VVCEV3FOpCpYr5BuH0puyqeF0Rm2CBPtnyJnRcv0BbnLUeeTIKvgubhMvKM2GChx7O8btJKlRVOdotg3ztn+orZRQ6iKc/SRSB3M2mm2W0xXauFt8y/bh13DwE2ci6eq1hybFEbbshFSFY1LhwWdaNUTqwts8h8rav4UpLQv2t8zpso3VEOGNyZD8+bLP6ncsboNvqkjNHH4dSshsYuvYZ3p03qgeS+9M2UPzjoNuuzURnqjkes8MJWyBDGvJS0Do98X2HVoBHFFZDLqMcOBlDdH/kGAT/eVj8/kOzpF4b7QyGqjY7N9kxu+nlrD6QuFrHYuudwqH1oyIb62EemmT3SKcypHhl/53pKxoUAKFNkTGlxJH+3jNNPleRoWw3HfcgkWNCXa/f6+0MIYT/jx5KjTXarmGtC3rk/mJ8up7mVbN8HH2vpgglN7xNbgsJyZK+VeE4TwWe6cLW9Dn4OfYPPzVy+5mktNYzJWTioRLMnpKEItIOg0ofmX42HCAUrwymNIIdnO1oSi1+W5fdY0svIikdWJ3SRLyAwkLodx557etuoNWLGGBq7X3aYHATTacrGPwuvA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR12MB8374.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(23010399003)(18002099003)(22082099003)(10067099003)(11063799006)(56012099006)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?S0ltR09sVHk2MnFOVXlmcWh0eGlQWUtPMTdseTFEcHV2MjByM3YybExVWDlz?= =?utf-8?B?ZVYyRWxWSHFxcmgvdWc4a3M5SkwyeGdzb1MrR3M1ak81V3Jnckh4aE96T2xr?= =?utf-8?B?eVN2QUxJaUs5ZGdSK1d6UW82azlQa05MMW4xMXRROE5qbzVSMW1qK3Bpcnc5?= =?utf-8?B?d0pMZnR3ejdiK3lBOTNvQXhYL05pTnRqcWNhdC9aRXE0ZmxpOGFDRk1GRDVE?= =?utf-8?B?ZkhqOC93SU1MaEdtSmIyT0xDODc1WGVPelBFY2dmTlE5RTlnQjdsZ0JlWlVt?= =?utf-8?B?Tk1raUdsZzdSbUFnak45azVORm02TFlBMTNGT2JYTVVLZTBJL2ZiUzhhU0Zu?= =?utf-8?B?dlJxc1JsWWw4Vk9FeHZCVWRmMDlUMnhtTHFtT295V0N3UXVBNVJDWkJrNE1j?= =?utf-8?B?L1RvNTF4OW9nc0JtNVBxMHo4OFR0aTY4NUpmYXRXNFh5dExGL3VhZzJkMGRY?= =?utf-8?B?N2gxSDUvNUpCVXp2UWJwcUdVNzQxRkJqMHM2SytYWW83YU9mTUY4empJTkts?= =?utf-8?B?VW5qMFU2WUFoMWc5Qkx0V1JSWkFWb1dBeHBmdzNqKzlIbTgxSXBzcjFlQ0RM?= =?utf-8?B?SzB0WENKUXBNZ1prR2ltOElLbmE3VStVdUh3Z1JpdWR3U1FOR0JNeDNNMjMx?= =?utf-8?B?cnRnSk5zM0hhMjI4Q1owS2lrRGV5bFIyZ2l2bUlRMC9WRDJQT1pqU2FTaW1Z?= =?utf-8?B?MWNYYjJhUUZON2c3ZWdQS2haVytYcjBtWjJ3TjRNWHU1bXg3NUQ4NjY5dTNr?= =?utf-8?B?UHVrQ2lSWXFyV2NiZVlhUTBCMWkwQWZUVzNFdUk4clRORzFLTGcxWkZSNVRB?= =?utf-8?B?NXZsODNBMlUrSURaNFBLQjdtRTF1dUcvallpM0pzTVJwUnNrcnh5NlYzclQz?= =?utf-8?B?c1JrVHZQZTU5ZGlEakJKU0ZCQXlveFpGeld1R2dpYkZoM3hTVXNZeWVGTkRV?= =?utf-8?B?dk1DYllMOWs4RTZuakdqOElKaFBVaks3M2l0dllkQkZJL2dxRWJQckx1SDY0?= =?utf-8?B?WGwwdTZqZ1hoaFpzZlBDL3J0UEl2UVM1VjIrSUNyU2pKT0phVlQxVWswYzlt?= =?utf-8?B?ZGlBRnhpdFVYV3pRRkFPZlp5RjJIcmVPVmRlaXNzWUdkVzVGdlp5Z2FSeVJS?= =?utf-8?B?bm50MjMzem5PN3R3aW05VlVTNkhPOCtkNTlnckhzeDd1eCtYeGRxYlBrdlhj?= =?utf-8?B?ZlNpUnJJOTNyaGtoY3BSMnhFcGR6Z054R0NVcHZCd0JEWUZXQTNuZ2ZNMDRk?= =?utf-8?B?eFB3OGd4T0t4ekZpbUlLaVF2dVRkd3JnV3lrQ0ZQU1hYK0swL1RjVFVranl2?= =?utf-8?B?QURaNXJkK21rek52UVdjUWdkaXh6K2xLOXdQd2cxdGlsa1IrVCt6MDBPNlMr?= =?utf-8?B?MnhGaUN1a0thK0lrRlFsUDVkb1dDS0pVTk9kbU9jRlR1QTBqME1GcUxsamd5?= =?utf-8?B?eGxBbWdUK0xKUnVsenlLTWEzTnU4azlRdXJlR1FFOGNoMEVvdWJDRjhjbmgx?= =?utf-8?B?SHRKdTNTK20wSnZZSkVpZm1XN3FnMFQ1ZVc0ektWVEJnUllxS3h2OWxIWkJl?= =?utf-8?B?YmZuM1g4VnA5dG5QU1F0TnNZdDJBbmk0SkMyVFRuSmdUK3BMeG1VaEd1NFVa?= =?utf-8?B?QUY4SjgzSGF1N2d1bnowMEtzamhFU3RSOTEzN2l2QUEyc3NWLzZkNmxRLzQ0?= =?utf-8?B?c2VzQXdlS2cxL2hWL0ZwWXVzVjdhSkhhbXBOcUw5Tk1IdFFqTVljTEdIWVhl?= =?utf-8?B?bTE5OWorQWtPNHF0S2gwRHZiY3R1RkhHTTR1ZlZWTFVZdEJXQXk1ekdoVllt?= =?utf-8?B?TGt4N1I3QTJseDJUcCtBNmZLS05DNEhMZEZUTnJZMXRYMlNIT0Zpcy9iaFZp?= =?utf-8?B?WVFUaXRFQi9SYkVYd3I4SkJxMTdISmtZTmFjem9MbFVIQzdrODZIOWRPYnVZ?= =?utf-8?B?QTFmS0hrNnFRQzhtbjA0ckJ1and0K0ZyanpnNkhhTHRpR2RoS3lHNlVUb2w3?= =?utf-8?B?a0VvNU1hNndZbmtHeG9mdlVNb0hZKzM5YkhEK0F6WHZ5d01VZ0JZUnZIcVZH?= =?utf-8?B?R3dzZWFIMVlTZytvZ0trVjB0dkJPTmRwOGc3SkhKenR3cXJOcXoxVjhwMmxK?= =?utf-8?B?c3Vjd3kzcGpRYzRXcGxuQktVQXRTTzAxUHJ4U3dGd0RGKzBncmhXRHZza0ZC?= =?utf-8?B?UjNORE1KalFDOUhLV3ZxcjFJNFFHaHV5dnlkQzRHZkttVlVvWGpRdko5UFNM?= =?utf-8?B?Mi90ZUR4bWZpRlNkclFReVZPVWZWNlUwaHUyTmcwRXVzVml3aExkYTNOd3c2?= =?utf-8?Q?E1bQjPw+jxePCSw3x7?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 90f9c159-a488-4af4-54ce-08deeea9fbd9 X-MS-Exchange-CrossTenant-AuthSource: IA0PR12MB8374.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jul 2026 02:18:17.6283 (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: 1vMjwLjSrYNMauVIcOXAXzS2w9Tk+FDjy4KMAN7vyQ+h/G4nyh8zZEh8a9MloqP0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW5PR12MB5652 XArray operations that allocate xa_nodes, such as xas_nomem() and xas_alloc(), add __GFP_ACCOUNT when the array has XA_FLAGS_ACCOUNT set. This charges the allocated memory and avoids the workingset convergence issue described by commit 7b785645e8f13 ("mm: fix page cache convergence regression"). xas_split_alloc() does not have that flag. Add it when necessary. Fixes: 6b24ca4a1a8d4 ("mm: Use multi-index entries in the page cache") Signed-off-by: Zi Yan Acked-by: Johannes Weiner Reviewed-by: Lorenzo Stoakes (ARM) --- lib/xarray.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/xarray.c b/lib/xarray.c index 9a8b4916540cf..bfe7bef80f34e 100644 --- a/lib/xarray.c +++ b/lib/xarray.c @@ -1053,6 +1053,9 @@ void xas_split_alloc(struct xa_state *xas, void *entr= y, unsigned int order, if (xas->xa_shift + XA_CHUNK_SHIFT > order) return; =20 + if (xas->xa->xa_flags & XA_FLAGS_ACCOUNT) + gfp |=3D __GFP_ACCOUNT; + do { struct xa_node *node; =20 --=20 2.53.0