From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2084.outbound.protection.outlook.com [40.107.212.84]) (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 7410918E25 for ; Wed, 22 Jan 2025 13:27:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.212.84 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737552463; cv=fail; b=kRHN/lMbkED3UCM4BZju8ZMEu6z0f1nNw9Z7ZbA+c0l/xiIiMOUXg9EuXou7BWn64ISaJZleharbU/LSTPnu2vHs9AGGO8b6XL/6FCTKObRcHoVd9zefmiZHxmJ1+TZFlOz/DoDIOf/JCR7qlamXGi2qV4gBH5/DK9OU5dTX5l8= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737552463; c=relaxed/simple; bh=j6plAT9caMahpg50nR2ths75LbipcGhbKnSPhQ9PPRE=; h=Content-Type:Date:Message-Id:From:Subject:Cc:To:References: In-Reply-To:MIME-Version; b=D6hru8W0alPbN5vHHKfWKUHCbmOUyqWnYHKeiWPydoHXchHsxj6IZmT1zXgZ1Nxh1Q+hCZ2q2HIdVYcqjqff2xctE27lt+FLpkS2WltzdPTbHVgn8ojq4BlYkvtnsDPSi8f2MbaJ9d6Awdl0f+hxuzI5Glh0+m4Zgl4clyqeq0E= 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=FFI9DiQa; arc=fail smtp.client-ip=40.107.212.84 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="FFI9DiQa" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fEPoqtB9Dyxe+KDcAxtwNMZyIfh1pJbx62CsycheGwrcf5qI/kyv+RPhbhgsozl23hKVrwUgg13iteBF4zAx6lOuywji1nNWjGxw3J/3MMuXqhMijqOUjfI8h4x0xSxmgQf6iZXO5Zoirw7Cr9WdRJLXHd9QARigdqDrXXH15a/6LLTbOQeVeYvejKE6enU95AV0neISbHM9u8wHclV93r4gyVmAIqnITKJ6MEOs9TDz7QqIf+TukBRWaW8GrqjRg5mJwIhyUyLzGtR4Ial4YJRGZsRWizwbogVebRt4uXCmgHvMhNKr9eo6P5Vl0d9RvIWlkBOq/aPtLHQBXWOeQg== 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=XP/YI+4h5f2DNHieSYI91DPnig5CE1plxuvj2PJqjuU=; b=tn5S8fgA0InQoZ8Ao2Klw+J0L02ADy8C7wgpVqJLbDxY05Aa/T3sxrrerpnirq/sRsIzW7mdeaY6cfgIoEzrfFCBQJdbGLvL/VtY/DQHAvjCAhkHuNBxX9Bz1QgU2/a2TLgSa/5E8eyMfEqdCKWoRZAFFyFT2/bFfvVog32IcGKGqI2TgZSbMDTTi4LbHwXe5ymW9BemCEhuUdnwv8zGvApsFfrr6ZDT3kuFZCFZ62XNwPfoIu5j/j2D+lOToFmhjPIoter3qFKizHmjAH0CI5RZlvTmTf5z+XVDIKKnhISRdro27VUDPkuKoVadcVFgAV78YAxcTS/EILDpJM296w== 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=XP/YI+4h5f2DNHieSYI91DPnig5CE1plxuvj2PJqjuU=; b=FFI9DiQax+1JCFyx1XKaXmnXZESo1+xQu+aCi7WunS/sF4ocT9RJ3JSejI+B8eMbdNsIVwS/uUT2gOm0xue1OrdprEDLn5AC6peznUoupyqGez2yC6EjyRzl1DSGZiu1YKGzHihDNAe7EEHj8g2AuOEx15FD62EF0mgY/2vfhtGR96Eg9bTVUn9aE4pO91dSwjO0eCS4czQ5Tw3nlBwGuRXbmzUcGx8dOfnSMr3vY9ojO8aK5gY0C3D7F+gHh4kU5m2yuI0tHNBTDhnnbKMNhebv/J7lsE6Ih7WWvx1T9KbFMie68M16OmHeAh5FxCRcxgLV5cYY/esqUH2KNa4WNA== 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 IA0PR12MB8349.namprd12.prod.outlook.com (2603:10b6:208:407::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8356.21; Wed, 22 Jan 2025 13:27:37 +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.8377.009; Wed, 22 Jan 2025 13:27:36 +0000 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Wed, 22 Jan 2025 08:27:34 -0500 Message-Id: From: "Zi Yan" Subject: Re: [PATCH] mm: page_isolation: avoid call folio_hstate() without hugetlb_lock Cc: , To: "Liu Shixin" , "Andrew Morton" , "Kefeng Wang" , "Muchun Song" , "David Hildenbrand" , "Johannes Weiner" , "Kirill A . Shutemov" , "Nanyong Sun" X-Mailer: aerc 0.19.0 References: <20250122061151.578768-1-liushixin2@huawei.com> In-Reply-To: <20250122061151.578768-1-liushixin2@huawei.com> X-ClientProxiedBy: BLAPR05CA0026.namprd05.prod.outlook.com (2603:10b6:208:335::8) 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_|IA0PR12MB8349:EE_ X-MS-Office365-Filtering-Correlation-Id: db9bb684-c200-4024-fe27-08dd3ae888f6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|7053199007; X-Microsoft-Antispam-Message-Info: =?utf-8?B?RmFsV0FFeXNPRGNTVVlYNGFkUUxnS0Zqa3F2ak83YU5pbzMxNXBwbU5QOVZY?= =?utf-8?B?Uk9uczl5bTcwczdaV25FOGZtRUk4QWNCd1hGdloyK2FmZzhJSVlkVERRaDRt?= =?utf-8?B?QmNQTkMrVkUrdVpyQXJ3bTMxR3IvMVF1MTJtT3NpREEzSTdqK0pZVzRTdjB1?= =?utf-8?B?QzlqRHM4UWJyTHB1a0UxYkp1ZWNCZUpGemFLd0xTb2lWVzhFdUN5NGUxUVlo?= =?utf-8?B?emVja2p5YlhDVGNzbnFHNVJlbEg1d2U0dUU3dGxWd21zNXluR24wb1pONTBQ?= =?utf-8?B?NVRWQVZadkwxZ1Z0MGwwaTRVT3BRN21JdDQ4MTJCOFRCMVllcFA3SUZEZkRJ?= =?utf-8?B?RmdFcWEvblBCUXlnZWkzUWNnenIyNVRGNmIvL3ZwM0JrM2RDaWVoTlkranAw?= =?utf-8?B?ZTZuRGpBRXJqWE11NkZpREtKWU5lSXBVZmdZSVFmSkVrbXNrT2NLK3N3RUV3?= =?utf-8?B?YjZUZ084QmR0WTZESG8vNVhUNWJuaTRZUHllUXpRQU9yQ21vbVdRNFlPMXd1?= =?utf-8?B?dGkzQk1zR3FzdWlzMzZkSVdkcnRGdGJhUzNMMjgvQ3RVOVY5akpHcEo5bjYv?= =?utf-8?B?b3U0aFpvOWFJVkxQbTdkMDB2TmRGZHRHaUFNQVhhTnhuVnpYa1VTVEhhR0cy?= =?utf-8?B?Mk1vS3VlQWRGT1BsWlgwVDAvN1FRWTU5R21ackRJSWxTbTZrN1NUMjBBRlFX?= =?utf-8?B?U1hzd0h4TklNaUZJWW0wdWxnNnBzTkdvV3V3cFh3eVMrZTZkVUo0V2VlWXdN?= =?utf-8?B?NE4xUTZwNk9xL1g3KzRyY2FsdzRINjVaMjhKTHp4cGI1WTJCc0tMVjRpbTdk?= =?utf-8?B?b08xd01sTU8xQjAwbWZYc2hhTUViWXVyYnc5VFFLaFZwZU1PZXJrM2NrcEY0?= =?utf-8?B?NWFzU1BMemlSc3hhNXQ5cUZVN0pJQTBkTFdXM0ZwWEozZlA5eWg2c3JBUGZw?= =?utf-8?B?NkdGZzlNQUVaSHJTOTg4MzRnMytZWjhLN2NTcWJKSkNiZUFrbE1CUnJXbnNm?= =?utf-8?B?eHBYYm0yWFh0Z2w2VnI2ZnVWTE5nK1dJNHNVVFhzL1BrU3Vra2p6aVNuaU1B?= =?utf-8?B?enB5eCtBUDJuekdpM3h2L3RwSUdDeTk4ckhSMEZYTEhmLzZOY1BXS2dkN1Uv?= =?utf-8?B?cjlXakY1d0ZwZTRtQXZNN1k5YzFSN1NGay8zK1dUa3o0UFpSWkJjN3I5MlRY?= =?utf-8?B?YjlqNkY5SmFwT29RYitEMHJCM1NJR1pER3RoRW5aNU1idjA3c1lvdnUyQ1pz?= =?utf-8?B?eVNUU2xnSE9MTnNJdzdtSkh1bFhtYnZoemYxUVhKcmRQY25PMUF4SkRmVmc4?= =?utf-8?B?eXBUL2dYeENxSDRvdEtRTUlNZGYzK3hsTWROamxOcURnWDF2RFRsZFJQd0JM?= =?utf-8?B?dkZEcjlWcFBYV3RiQjBOZmt0UmZYdHB5K1RBM1BqWTA1Q1Ztb2tvSkNmeTV6?= =?utf-8?B?Y3NVZ005VHZycjZqb2drMHI2VXZqRmxscXJ6Rmp1ZnRYRWN0NllzZ2M5alNN?= =?utf-8?B?QThsQ2UrNkUvZ3dBcHc2N1RsaDROQjhDdkVaMktsc2NDLys3YjlISHJ3Y2du?= =?utf-8?B?Mm1XM2ZJdysxcit4ZzhOa2FXUFlBQkNTMldqV01LQVpQOVBZMUIyYUJVenBJ?= =?utf-8?B?Y0grNzd5ZEVnL1g1UzVYWmtUQjdoWk0wV0NsQWd3SWVWS0luTnB4dUFiQnp0?= =?utf-8?B?MFFOc2NpMTNid0dEZmhjWHFvRUdiYlQzU2R0REJZZ1Rydit0YU5KcEMySW5j?= =?utf-8?B?YUhiN3BHVVg5SE4zcGxBZG80eUJtaXpDemxBMHpDS1dHZ3pjVDFYS25HWVRO?= =?utf-8?B?V1htZUJ6QkNZNFI5OEZUUGE1UG1hMW8rMnp5dU9DNzZKUXE3Z3gvZVhwaWVU?= =?utf-8?Q?AWtJQKtyNfEEZ?= 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)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UEVjdWJNUGsrRzlKV0FpNEFXeVMwaEdLcXhsN1dFRGs3YWFCTHNIMUdrMDNo?= =?utf-8?B?R21CNTJrU2YwNklPTkc4SktuUUNFaGw0NEVHZEVRcTNQZHRpQ0I2RmM4THJH?= =?utf-8?B?QTl0eDRHa0k2N3NEZFVWa3M1WXJ6YUs4aERUbmFOeTZXd2RLaVYrbW5TTVlU?= =?utf-8?B?WEpEbTc3Z3RESTlUMWNLTTdnV0xEdGFOUlo1WjRNNlBsMTZzK3hxUksxT0Mz?= =?utf-8?B?NnBJcXVrOEdrcnZHaGtCb2FKeUU1bGlldzNSZGZNaGxiMUhPREhJZzg5Tlox?= =?utf-8?B?WDJNRTNLWXEwRW1UU1Z1U3JqUHlZaG1kbm9WWmwrOWZsV1Rya1RRM3k5eDJv?= =?utf-8?B?QWJnTmN6N2V2dy9zdDNrZ0VhR1JaMS8xb1RqaE9Ma3p1a0RKS3RJK2liODNP?= =?utf-8?B?cnFYWE9SNVZWRWhGbUhEajE1SlVrNzBkUWFEUklUSXRaNXluUWw5TzJJZS9K?= =?utf-8?B?b3E5REZFY0twOHVwK3NoTlFUZXh2b21oMVNiYTVVM0g5dElnL2d0Nlp1NS9z?= =?utf-8?B?K285THI5RDJyZ3U1b0I5V1ZqMmFaZm50TkdnZWpaVjR6WjV2NzV2MlhVRUUr?= =?utf-8?B?a3ZYZUtHTUFwbStRQjUzRjBZMmVGbjg0bk54TytjT2pwYTlsQWxneWxoY3Zv?= =?utf-8?B?NndncG5Lcng0M0NuUVlMdWM4Q255akdJakZvdTRlNXRMb1NJWFo1M0dWY0Nl?= =?utf-8?B?ZWU1WlYzWEdvRHhJR2p2YTY3L2RUTVlwTEVKb2RqSzQwWFBEeEViNEU3THNq?= =?utf-8?B?bjJGK0tvZEdMeUNRcGtCNXZKVy9kMUZ6QkVSdE4xMkQ4aVY0ZnFrRDZ2dTZG?= =?utf-8?B?WTZ3bFkwUUk0RkdhYjN3SVJGYjhKRVJNRnl3eHAweEdWbzFMN1ZPWTQ4ZUpw?= =?utf-8?B?cGk0VHpSV2lQWWJ2YTc0bGgvaXRydnlhOFRFdWhiMU41K1V0RXk5eU15NGhZ?= =?utf-8?B?U3hvbktpb1dRL2M4TFlYaEY2VVEzdGtkOHF3RFVUS3RNYmVKU0ZMN2V0eFhX?= =?utf-8?B?RUVrUDFxNmU5WVczSDZsbXRabGVwTGRSWmZpK1d1YzRBbGlPdnJuamdGa1Vj?= =?utf-8?B?S2NtS2hJY0ZwWlRXT2VwZVBiOU9uVW11bVR1ZjBEVHo3Tm13OEJwalNYQ3dW?= =?utf-8?B?dW5wbDc4UGw5ZENob25nUVBhNHJyWE4zenVDTGlkZXZXNEVwaGZNYXBPbWQ4?= =?utf-8?B?UHRMcm5ZWjdMei9yUEMzdzZVZy90YXowNlNhWDJCNHRRR3RoU3Y3MmZBdlR4?= =?utf-8?B?UWdoQUJVK0w2dXpKTS9mQXkrb1hLcysxdlNsT2JHK1cwOUszbDBETWRzdkVK?= =?utf-8?B?NnF6VDdCTnJBeXVTVVpCYVUxaHBGdnRvTHhKRTN5eTVpMnk1RXVTbmZXeEpS?= =?utf-8?B?ODlzWEJoemhmcDJaeEppUlVVejNrUWhjWjhtM3VvWm9ZSXJ3cW0xYXJLUmxD?= =?utf-8?B?YXB4Q29RZ054aUFrcDlCQ3psQ2FGclQ5WENOOEFLMERUVkt2RTJRRkVNdmZi?= =?utf-8?B?VDk3bmwvelJlTWZDMy9wdks0Q1ovakYzcUE1NG5LVWxzdDd6SFRVQU54VWE2?= =?utf-8?B?YkJaZnQyUVc3UnBsaUFqZnY4d2ZCaWdqMDNTNFoxclA4VXlPa3RVQnlXVTY0?= =?utf-8?B?RVd2WXF1NENkZTBOVldvMzNUZzdvVDA2UW5rNXlJaVhyb3hLckdJOUFXS0FW?= =?utf-8?B?c3F1Myt4UHBraTIvMEp4UjhvSThibVlhWmVVY1psVk11bjF1R0FhOHBOZGli?= =?utf-8?B?NzdJdnQwY3ZWMkRmSndzZzVRVGZCQVJJLzY5WkxNRGo3RVFiaGppd3ZLQVZx?= =?utf-8?B?bVp6OXl6V1BkYnRHUmUyK1NPTFN5b1ltclBZVFpVMzVDcTBSeXVZVnAydFRO?= =?utf-8?B?OVgrZ3VzZi9qK0hIdWh2TnBWRUh3WVFFbjhDMmVTZFBCYTF6UGRuS2tmOTRq?= =?utf-8?B?Y3FwWGs3cytDSlFGb282Uk14N2NaUHdzekgwNjhkck0vVkJWcnFqbktiZk9C?= =?utf-8?B?ZzJQeEpuSWE0WExVamp2WVJFdTQyREZIY2w3bmJzSkMxQW4vck1CaU5VODNz?= =?utf-8?B?RnNWdkhLU0RkV1d5anV6M3VvTVY3S1ZIWVlwS3VsNUdtR1ZBVVZIbXZVR2hz?= =?utf-8?Q?L+addEC5e4IZWi+Fe2n7axWj0?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: db9bb684-c200-4024-fe27-08dd3ae888f6 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jan 2025 13:27:36.2275 (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: 2X4P8jFRY3CZhxU042f6lw2FXghn2pj2H7sMP1EDvAqCW85DHcmESOVEdfs3Fjul X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8349 On Wed Jan 22, 2025 at 1:11 AM EST, Liu Shixin wrote: > I found a NULL pointer dereference as followed: > > BUG: kernel NULL pointer dereference, address: 0000000000000028 > #PF: supervisor read access in kernel mode > #PF: error_code(0x0000) - not-present page > PGD 0 P4D 0 > Oops: Oops: 0000 [#1] SMP PTI > CPU: 5 UID: 0 PID: 5964 Comm: sh Kdump: loaded Not tainted 6.13.0-dirty = #20 > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubun= tu1. > RIP: 0010:has_unmovable_pages+0x184/0x360 > ... > Call Trace: > > set_migratetype_isolate+0xd1/0x180 > start_isolate_page_range+0xd2/0x170 > alloc_contig_range_noprof+0x101/0x660 > alloc_contig_pages_noprof+0x238/0x290 > alloc_gigantic_folio.isra.0+0xb6/0x1f0 > only_alloc_fresh_hugetlb_folio.isra.0+0xf/0x60 > alloc_pool_huge_folio+0x80/0xf0 > set_max_huge_pages+0x211/0x490 > __nr_hugepages_store_common+0x5f/0xe0 > nr_hugepages_store+0x77/0x80 > kernfs_fop_write_iter+0x118/0x200 > vfs_write+0x23c/0x3f0 > ksys_write+0x62/0xe0 > do_syscall_64+0x5b/0x170 > entry_SYSCALL_64_after_hwframe+0x76/0x7e > > As has_unmovable_pages() call folio_hstate() without hugetlb_lock, there > is a race to free the HugeTLB page between PageHuge() and folio_hstate(). > There is no need to add hugetlb_lock here as the HugeTLB page can be free= d > in lot of places. So it's enough to unfold folio_hstate() and add a check > to avoid NULL pointer dereference for hugepage_migration_supported(). > > Fixes: 464c7ffbcb16 ("mm/hugetlb: filter out hugetlb pages if HUGEPAGE mi= gration is not supported.") > Signed-off-by: Liu Shixin > --- > mm/page_isolation.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > Thanks. Acked-by: Zi Yan --=20 Best Regards, Yan, Zi