From nobody Sun May 24 21:37:38 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012007.outbound.protection.outlook.com [40.107.200.7]) (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 3ED0B35677C for ; Thu, 21 May 2026 03:27:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779334065; cv=fail; b=WYTgHqW/+iaYYqC+DHzhj1lJ7dsMsgcowI+Z2m8tAwZSW8su9SW01KelROMIi1ElfBoON9xAfjDGD/MSWUFHjy7AmojDkGUo1o4wwlpSSPuiYGIZJnKGdkjjsl28KWYDCzcjDJL24wEr17i2Ipp8cwf/gGwcDPRSNQKzPZ8FoIE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779334065; c=relaxed/simple; bh=z6NspRdpQb/HDurgxbsyO+GeN/TW218mkhCNZ2WkXy4=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=EueL0Y/3WzUR8nd6E76MCtunCiLsz1LY88WkdlO3kaqgdGUOWpQgEn9GENo3teHcCdxHEZ1kyE+LipguLj/CZT6QMsyWiEb8z9LuyZ3FnPbikDIXxXVqnPPim4O6syLXJb/btKEzvcYQNLsh25qQAY0vLLPv3k3d2s1SFIxysPo= 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=TRY9gffr; arc=fail smtp.client-ip=40.107.200.7 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="TRY9gffr" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Rt+x/9AuU96PVAuPORT1HEvDghzGHpEsOoRc0SXK+1g8fWw+rfrh5W254rVaHmdNAKlx2dBk3Mj7P1gwSMJ9XOzolvlUs0D7n7vgYNYR5TdxQwt6JIOuyNB/tRZnxPTz57BC+FkT8utyV3wUvfukazo1f4z5potlDFWmkLsOCTn+bKC3sD79o0IEiuLUOK/iqKwfTdOTetfyWR3mNIHrS9aC6Od9yaVoKO8gC29peEMxWav9r6x3qGn+X3YIuLIrwyHUzghSK3xAcf7EPmKd1BVzlYcDWgCBSSKbucOq0sv5NMo4PITdgp5NiBnX7vOcokJgl4TLMsRiib20dYmVNw== 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=YJTAilE2fB1kc1oS1JGj9wJtbBZ1hQGbx2PG9bp1uY4=; b=CkYclm/3tofjjNtBCm2yECo2hjodT/Ggyf8pfjc6UCL970GG7OhcRy1+rdxqGGZicLUtMr6hwySdksejqqxB/MkdRq+nvbRhwxhQ/8rpKAiFvATXhEdVNucxMmOlr7zWPoxiZXZW74ksmkTfmAhzP787eD3iVcJE2RwOwWat2WXcWm5nv7deb575j93qUJjclmrgRhNO9qURLXhjQTbUTtoelyGff4XMwkmTe150XV5SWHeX6l0xqAPVm0d7ZTzT/wHUlI91SDkmqAllyis6OepnCRWAeWmDyNwtSitWxVxbJKnINsWTabeND+QGRZ05HiXM7+4nOM1Y1cqg3Qm89A== 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=YJTAilE2fB1kc1oS1JGj9wJtbBZ1hQGbx2PG9bp1uY4=; b=TRY9gffrRGiIfLtOm25MMdTYufE2RsPZk4GTdLk7sjBpSOl1z5UxNeRHZssuui9Amu/KnGuyYhPh4c7nQ5PwjuDUOB1mf4FY35hwPjRg+UN2J140RK2aKkNQe6QjbSQ8WtE8uTH4LoBKpgy5lad7DWKIGdIM82+OmDPyPiKPomW3Nc7H7zokwr2WAlvxCaev78xRg6uvBXB/NBUX15q/Ie3qz5F6PbP+Y+wo8K/bKPZf1mT8tCskTmOUEwcl0DmDIMBmBmhnQEMS/c0yxDcn4G7OcVzdqTXV5SYDrAGDLQQyJVR7kZjS+X03zlu9vysRU2hiuu81L0auQsKxDAsTsA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS0PR12MB7726.namprd12.prod.outlook.com (2603:10b6:8:130::6) by MN0PR12MB6103.namprd12.prod.outlook.com (2603:10b6:208:3c9::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Thu, 21 May 2026 03:27:39 +0000 Received: from DS0PR12MB7726.namprd12.prod.outlook.com ([fe80::5807:8e24:69b0:f6c0]) by DS0PR12MB7726.namprd12.prod.outlook.com ([fe80::5807:8e24:69b0:f6c0%4]) with mapi id 15.21.0048.013; Thu, 21 May 2026 03:27:39 +0000 From: Alistair Popple To: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, catalin.marinas@arm.com, will@kernel.org, david@kernel.org, akpm@linux-foundation.org, Alistair Popple Subject: [PATCH] arm64: mm: call pagetable dtor when freeing hot-removed page tables Date: Thu, 21 May 2026 13:27:30 +1000 Message-ID: <20260521032730.2104017-1-apopple@nvidia.com> X-Mailer: git-send-email 2.54.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SY5P282CA0008.AUSP282.PROD.OUTLOOK.COM (2603:10c6:10:208::7) To DS0PR12MB7726.namprd12.prod.outlook.com (2603:10b6:8:130::6) 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: DS0PR12MB7726:EE_|MN0PR12MB6103:EE_ X-MS-Office365-Filtering-Correlation-Id: 0fb3ecaf-7b73-4ecc-d1c7-08deb6e8e91d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|11063799006|56012099003|18002099003|6133799003; X-Microsoft-Antispam-Message-Info: kIEI31PTZ5OB/Kw9+B+J5U5IJ3vJLMoaXXgtc0aystrM7zF6NZ/RZz5hfGJuClhzRuLzcC2hgWnTI500YY7K2Q7Bc3IJ3CNfiyjZSdH3lK++TZy29Xc8I/sZ2fZiBLuB8TnFic61egx7eKoZdAlwknK66eqRYH60T82FyjMEO9YpyAGvaNDtPLshMJRWPq+YlWl9Z+6QneuyKdG1mqcMkD63pMtR24i44sevtBKcYoeErvoisde5AoBLb3jG7H+FLtF4SQU0zi/7Ce1RtQXnvm0dD3g2dDiCBw+1kfGG2pbLw/nMHvjHfJhQgHMqv7u31UxEF29huws85FRXX9Vri1j3gRqADdE4mW1YpJsLeE21t+xia5snqnV9TH/ix/bIAs+NJPewHLjCip+9tIXgqUSMK8Y3SOUSaE3KwwgIaMC7P2V/IQOlff3JWHdNNSPBF5TcWE4SOUzvPg5pwgEIRcwypUlI2BIt7u+4xL+H3/GGNk9axlHM39YAYZdHBOohT+S8d+SMO2PIUZhjQJNjb+hZIwC2KsjIbZV6FoKoKzXIDsbfiLTfs2qpDkCSGyvhFcM/u2MW2H/1sjy+eSMC10CHT69z5Auz1OdI1A0TzbaBTykI0xJM5munIGRJMMmSsf+SiLgcQ9CqeRlsz/2HDaS5WmQvvnMMkyQjauNojRQ17ezxfBHXRoVwmfzKLWep X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR12MB7726.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(11063799006)(56012099003)(18002099003)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?cMeI+wTpj0/TKMSZzGmCEOkmR7e3r0onWsZnMXCFGdtzpAVbwY+vkntfNZpq?= =?us-ascii?Q?qUNal4loETbpqqMgYobsI790qfbuCEB6hf/OOxix6qHkvNe1nYDkpN4dhJPq?= =?us-ascii?Q?2IHk3Bw3ciSjGAxOQj53LJEoDxgd+pK8GBqEHYlPstGq4OTWcY1eDIy1QGhK?= =?us-ascii?Q?cmB6Sb3C4V6luzIGKA6J2vT1zu3naosE08f19uAV/hDsRGSqEFaZhDPGoKeM?= =?us-ascii?Q?sRCBn34INhtlYl2I+kFEQwixs1vkqXok0x51hUqWUJp/EAj33jFIeJMVyZNX?= =?us-ascii?Q?Vs5GS8lkOF4wccickF5gEdJs6AD2mkcUXKOGgMyfQbB1q1FJX6NWJWJbgBZD?= =?us-ascii?Q?TMDuqqBAS5V4VHhGdRX7hYTPCyBRn3Z0iBeGbhnBpbJi4V5AQDHYX+j59BdD?= =?us-ascii?Q?pEPbgkqj/kErBHctU0Us9QlqG90HTqgUWytZAZdkB7bqIeaKnJxocLgaumj/?= =?us-ascii?Q?WGM+F2t1w7vdPgpvjBX76gzF3Bf0qyeVrSRCn+sW69t4rxIIPhb1VHgSmm40?= =?us-ascii?Q?ONjpxhTNMoZqpXsEnHcM3IUr21QiX5Ukqg4s6b9dXYNw8AShCfFY/IPuJBpM?= =?us-ascii?Q?CDPoiRxbXe3ryNW0UJinxePZZ8J8Ax6DdaGjm1dEaJkP4N5aoBLn8TVkaiju?= =?us-ascii?Q?PbJ2W9zgeZF9A5doax8QpLdD/CvZtf1/GKmrEJ9O2rLDoCO3n/7CHnq1EoLZ?= =?us-ascii?Q?WOwab6SE0GopGHYbhkVGOH5NUm6lKuPGRpl1sjUMVv+p/u1tH4Kuy2yhiniG?= =?us-ascii?Q?OW2TreDzT8ryy+3qUftiMXqliIRBnVxmIGGDPaVnPadULZ61QwbNZ+Lpe+lW?= =?us-ascii?Q?zc2HXPkUGROBJW49k8JKPNbGvkRNKOsjSKar2oH9gVP/I0fT4kedfC79AVZZ?= =?us-ascii?Q?fSCZegy8f3pRWGDXYjj6QDXcZm1M7TSp1DoffH6Yj6+e+ARb8Dp5ShT9iZKu?= =?us-ascii?Q?/R0T4ba5IXcFeSvEAFqT6h7U8lH5qub6ttrO4sn2tvIqw5DOIMf+Rm0cyl8V?= =?us-ascii?Q?YcIZd5EIx1LTfeQRrMqzuiZhfrVZRUyrwxSl4FtLb5AQJjD9NG3nXmeE+DU3?= =?us-ascii?Q?sqLSEQ5/jNqYWMycPJZoq72rJ4WmyeAq/FGZMeTlG5Iofy0gEAJ4u2iFgR5v?= =?us-ascii?Q?Fafv9LwRcb5IDrhfBVslqp8v4EDhUHTH+eOU8b2Hjzy5AbVb83V+UiyeJs5y?= =?us-ascii?Q?A23An7nk1Xicc0qTw7TnB+yOeVwQrkW5oFxl7gxVDWm59IaRNQkndVAutaaU?= =?us-ascii?Q?J3UROoANTY+OjVjvfRjNezeEEU+ixEF6TmHB96KeWXwlrVYehPDVx26Jj3J4?= =?us-ascii?Q?hCJ6xodsK0JODcEdnmqBUav1BktsQQUQSAjNG++6OW/pgEN7zZ5kyCP55pbM?= =?us-ascii?Q?/3ROs+gMJggkTv1C+Bb/vCNSWJBQvAbl4JmjCnlTdD2u5w9Rkeo0660Gsm/u?= =?us-ascii?Q?G+K93+EkZsY+p0Ske0VSplCnTt62o+SImjk2Mt5X4sOBFMUkfCl7wusuyS3W?= =?us-ascii?Q?HgYXl+HtqAjNwMnQK1kz2wUbcsbz4ADf9b8APlwsg1BrSiiY9Lyx6XdRFACe?= =?us-ascii?Q?MqgGHs8bgrHuhQ5sr4495jYqLh9ejRK7q7v9DhlHceFVfa79VIbZVot+Ff0R?= =?us-ascii?Q?1X+ol+J8AcXeeb26LLWOwxos7A+6glKbugvn7lo7nvGCi3XyaUVjQSvmnHAF?= =?us-ascii?Q?j7pVzuLZCyRZWSnD64bXcGcOEoCe+C+uCfQUpdniKRiO3hXNV9hvZHOs8NwE?= =?us-ascii?Q?i+7RzVJqMw=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0fb3ecaf-7b73-4ecc-d1c7-08deb6e8e91d X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB7726.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 03:27:39.5366 (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: q+KhjXA2tfoYW+57ZJYmGuDFjkLA8106tQvOIz3U7S7HnRyaM4WUorNcMQM96+9ZXNkW3PHxN7XADkrgadIJWg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6103 Content-Type: text/plain; charset="utf-8" Since 5e8eb9aeeda3 ("arm64: mm: always call PTE/PMD ctor in __create_pgd_mapping()") page-table allocation on ARM64 always calls pagetable_{pte,pmd,pud,p4d}_ctor(). This sets the page_type to PGTY_table, increments NR_PAGETABLE and possible allocates a PTL. However the matching pagetable_dtor() calls were never added. With DEBUG_VM enabled on kernel versions prior to v6.17 without 2dfcd1608f3a9 ("mm/page_alloc: let page freeing clear any set page type") this leads to the following warning when freeing these pages due to page->page_type sharing page->_mapcount: BUG: Bad page state in process ... pfn:284fbb page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x284f= bb flags: 0x17fffc000000000(node=3D0|zone=3D2|lastcpupid=3D0x1ffff) page_type: f2(table) page dumped because: nonzero mapcount Call trace: bad_page+0x13c/0x160 __free_frozen_pages+0x6cc/0x860 ___free_pages+0xf4/0x180 free_pages+0x54/0x80 free_hotplug_page_range.part.0+0x58/0x90 free_empty_tables+0x438/0x500 __remove_pgd_mapping.constprop.0+0x60/0xa8 arch_remove_memory+0x48/0x80 try_remove_memory+0x158/0x1d8 offline_and_remove_memory+0x138/0x180 It can also lead to leaking the ptl allocation if ALLOC_SPLIT_PTLOCKS is defined and incorrect NR_PAGETABLE stats. Fix this by calling pagetable_dtor() in free_hotplug_pgtable_page() prior to freeing the page to undo the effects of calling pagetable_*_ctor(). Fixes: 5e8eb9aeeda3 ("arm64: mm: always call PTE/PMD ctor in __create_pgd_m= apping()") Signed-off-by: Alistair Popple --- arch/arm64/mm/mmu.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c index 8e1d80a7033e..0c24fe650e95 100644 --- a/arch/arm64/mm/mmu.c +++ b/arch/arm64/mm/mmu.c @@ -1422,6 +1422,7 @@ static void free_hotplug_page_range(struct page *page= , size_t size, =20 static void free_hotplug_pgtable_page(struct page *page) { + pagetable_dtor(page_ptdesc(page)); free_hotplug_page_range(page, PAGE_SIZE, NULL); } =20 --=20 2.54.0