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 93C6BC5B543 for ; Thu, 5 Jun 2025 06:41:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2962A6B059B; Thu, 5 Jun 2025 02:41:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 246A86B059C; Thu, 5 Jun 2025 02:41:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1357C6B05A0; Thu, 5 Jun 2025 02:41:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id E53CB6B059B for ; Thu, 5 Jun 2025 02:41:56 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 88D40121B10 for ; Thu, 5 Jun 2025 06:41:56 +0000 (UTC) X-FDA: 83520401832.30.68355C0 Received: from mail.zytor.com (terminus.zytor.com [198.137.202.136]) by imf12.hostedemail.com (Postfix) with ESMTP id 3554940010 for ; Thu, 5 Jun 2025 06:41:54 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=zytor.com header.s=2025052101 header.b=p10Hzjlt; spf=pass (imf12.hostedemail.com: domain of hpa@zytor.com designates 198.137.202.136 as permitted sender) smtp.mailfrom=hpa@zytor.com; dmarc=pass (policy=none) header.from=zytor.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749105714; 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=Lj0QPMaoNN//NUIcs8+QZOBIqJ8N8XAmiP0Wm85OEsM=; b=e4TD7kIWXOos8r8K5VpYoPV/oQZzayI7EnANZIRywFZDcHdXkTeL2RolSldAXmHPpc3kah qEvIFULJTBHUVmjWln+CU78kz93IIEa+f1ZpmQkNB9jqO+egz0rvzYVhsCQ0qG91aNJCeT MM6Wtvb7ddAO57x6Zz3Wq9yq9MHVemI= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=zytor.com header.s=2025052101 header.b=p10Hzjlt; spf=pass (imf12.hostedemail.com: domain of hpa@zytor.com designates 198.137.202.136 as permitted sender) smtp.mailfrom=hpa@zytor.com; dmarc=pass (policy=none) header.from=zytor.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749105714; a=rsa-sha256; cv=none; b=kwP307JUzeyY9fNRN9qpuUGTvGDuWmSXCxPXSfBhmGmlUU/2exiYGS2UZ0zZFqYS4qtkmv QQm3YyTvEZR2i+kFK/3K+bnpjBN7s2FUUDOTEkmtRv+lEDW3If/RaiyF3DTK6OaB23LkVs xkak2IDjG2jIwKqqZfS65IorhmZqlSo= Received: from [127.0.0.1] (c-76-133-66-138.hsd1.ca.comcast.net [76.133.66.138]) (authenticated bits=0) by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 5556fM2D357827 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO); Wed, 4 Jun 2025 23:41:23 -0700 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 5556fM2D357827 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com; s=2025052101; t=1749105683; bh=Lj0QPMaoNN//NUIcs8+QZOBIqJ8N8XAmiP0Wm85OEsM=; h=Date:From:To:CC:Subject:In-Reply-To:References:From; b=p10Hzjlt+lsneXYm78u39WHR//VRbrhyRwOYFOUk6ED7VJO2/hJVHLq0h/tzLRVVS XnTiP63Cz0gVkslIwOS2pIoHighsyvErcQNWugRWF4WUwIVxf/c/yfbx4CpnKcZy3k hlIo7o+7U6fKnYhKgQXGZjb4TqGEKFtlj/FC4A5hFrxKbEIgQuos3XWwM88RjD4nLR Yy4rDK+PN7jspvSd9i3MY/jKEtJ/JSVbSDNn15EBZn5idf6w8gjKXUBk7vsclkHScK Tm3pAXJFV6Q9HwwTF6HVmT8lN4wFqwK0Wh8KHsqKLI5BbttxHb1lVpbjs9fo/0ahbG MyjLGe6/sMYFg== Date: Wed, 04 Jun 2025 23:41:21 -0700 From: "H. Peter Anvin" To: Ingo Molnar , Em Sharnoff CC: linux-kernel@vger.kernel.org, x86@kernel.org, linux-mm@kvack.org, Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "Edgecombe, Rick P" , Oleg Vasilev , Arthur Petukhovsky , Stefan Radig , Misha Sakhnov Subject: Re: [PATCH] x86/mm: Handle alloc failure in phys_*_init() User-Agent: K-9 Mail for Android In-Reply-To: References: <9f4c0972-a123-4cc3-89f2-ed3490371e65@neon.tech> Message-ID: <70530630-6781-485C-9F2A-531E121692D1@zytor.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 3554940010 X-Stat-Signature: kr75pgfeushqcj1cejjsqazn5pukysqm X-Rspam-User: X-HE-Tag: 1749105714-1421 X-HE-Meta: U2FsdGVkX18JIxoXw307lrn7RNqb4gxqeEENxUB5X4KcHpzh+jv5z9orEx0srcRAFG/1V+NA1QlJtugkuK8I8+pkxjmmVE/md/G/4SEsjEu02czQk4AkxpnMUllfIJDMBfj3YVhBPWSwSFF0KRUjnvp3MLDGn+NDxeCYlrYSE+kben4+n2MtO+h2/uzohzeNiOgyEukmslco/O/QBFjvcxmSfWULPqRBXz9Dq7BQacLhMZ78D5q1g/Ucns0glAHH7LXeDHC0H49QwMadfh07KN26XCan0jdNXwH/QYbw7SKSn0fiQ9BPhPe4A7PfLh9rTftqVzTPmwEy/qzNk5XBshdenNyFWKNp2rE5p04F6O9+9V+G8u8dSmtXj8Tz6o7gLcdiyP6+HVwxFbjMUdW9CLihDvBXgWlWIzt6UjZMW+KQsFtHzNvCRYA2e99NdpgxrVXwixhYhu4onlR7+FhKuhiRPCn4ijmjmDu+BH/e6W30i9nMjd2lh17KeNjOClRiMMkQtxSKmn70A4Zdd6xjk96pIrWjd+KwSOL4dbqFfq9GTQITlq5jWrbKf0c1owdGB57Lq8reslJj2t0ZNVSVxdj4/ruIw2MriRUNgrbCvZZTVQThgH/hQE49REtDIrh1B7op4i8oglHo7H6p9/lw5FjWRk6WxutGsCXWzmoZdyoMjDYsJbCGeokP+rCdrUw7/rhG0LqN4sYnr4nAKrp5j//U4G/2DouACgZ161umjwxPQtfopTqTMmzOrAk10chlZUWrc4Vhx8/svyPeUMOSxgONuZi2P75UP2SrUHqZJrvyCUpahHVUPbTv79K1pW8J2rznNhjZHliMPlxGCuhpt9GXn/AxB1emBMitNIkWftsBjePoU01twlTsppwvVAvPIuxneGDw6NTZM9mm2JzPgIIDmJhl1SVSFwgi2EjJZBTN5hyKqgNiIlkursvaVcn+aPE3JQy+1lxp/42jNvv Jy/FiQ02 3HIgrZMU07DEtZ9D+GaRd9RW/x08mYc7VqqwuDH02Xg/pVuFNvck8kFHIrC8gfF4gqfnLBW1x3T1CcPA4lV6FdF+0xm+s0KbikZ73DYg1BZyrPtA8kp+T3/gT4FpWTXLI4ymhqcVPPXqiBJLhkn5ZPuKU7k/dIUHMN9RArm6jSGxdo2LnfuG7QjgvDCD4/Msp09urMPJPkL/pi8XxuMGtPUOzqG2DcfnXwCU/BbLCLtAOhBpVsxnHxL94s76arGb3aQ80RTS50GNxSJDbMwbG1VNKBCPz2O9Yoql7fp1Z2CdcZo2whTxQeiMXiqYJq6I9bU1KlsRQDnJUO6AxJcVwu/o3XAQu3xWLKsRW6m03fGYyiZ8= 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 June 4, 2025 11:36:45 PM PDT, Ingo Molnar wrote: > >* Em Sharnoff wrote: > >> tl;dr: >>=20 >> * When setting up page table mappings for physical addresses after boot= , >> alloc_low_page() uses GFP_ATOMIC, which is allowed to fail=2E >> * This isn't currently handled, and results in a null pointer >> dereference when it occurs=2E >> * This allocation failure can happen during memory hotplug=2E >>=20 >> To handle failure, change phys_pud_init() and similar functions to >> return zero if allocation failed (either directly or transitively), and >> convert that to -ENOMEM in arch_add_memory()=2E > >> + /* >> + * Bail only after updating pgd/p4d to keep progress from p4d across= retries=2E >> + */ >> + if (!paddr_last) >> + return 0; >> + >> pgd_changed =3D true; > >> - init_memory_mapping(start, start + size, params->pgprot); >> + if (!init_memory_mapping(start, start + size, params->pgprot)) >> + return -ENOMEM; > >I agree that it makes total sense to fix all this (especially since you= =20 >are actively triggering it), but have you tried also changing it away=20 >from GFP_ATOMIC? There's no real reason why it should be GFP_ATOMIC=20 >AFAICS, other than some historic inertia that nobody bothered to fix=2E > >Plus, could you please change the return flow from this zero=20 >special-case over to something like ERR_PTR(-ENOMEM) and IS_ERR()? > >*Technically* zero is a valid physical address, although we=20 >intentionally never use it in the kernel AFAIK and wouldn't ever put a=20 >page table there either=2E ERR_PTR()/IS_ERR() is much easier on the eyes= =20 >than the zero special-case=2E > >Finally, could you make this a 2-patch fix series: first one to fix the= =20 >error return path to not crash, and the second one to change it away=20 >from GFP_ATOMIC? > >Thanks, > > Ingo Specifically, zero is a valid *user space* address=2E