From nobody Sat Jul 25 16:20:55 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 47031326951 for ; Thu, 16 Jul 2026 06:47:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784184446; cv=none; b=B30Ux32XDak0JYjGdKTGdcgs9sBTx3pOpfwwo9Hzj7Nciw+phsQEJta/7PNQzruCzubQOX1xwtskirhQF41m858zFYpP0NB6OAtkX0CUBMKSt+IS3LBlPMla97vVlfZaCB6fvFUr2bxviZwgYDN0xZEllqPH2utEX7fxczBDR2o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784184446; c=relaxed/simple; bh=/zx4SWgfXy/FgxbCsI3BUXlGcB3UXuH1/jO8vvwsMGY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=Anfw/khjEdLlGDzH5+iYKr5IRvFJl0qqF/C5seEqDUEj1h4hj5pGYnbac5XAoYBssmm8c8vavhNi/iq1On7ziFWtu+L54xUQ5C49o6M2d2sV0VG2EqT7/Ty4PVjG3H6IQ3odwA5Gj3lYZa4CyIQiyU46I0geuK+RYP08H/xsjeE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XDlvCaxU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XDlvCaxU" Received: by smtp.kernel.org (Postfix) with ESMTPS id 6C9A2C19425; Thu, 16 Jul 2026 06:47:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1784184445; bh=/zx4SWgfXy/FgxbCsI3BUXlGcB3UXuH1/jO8vvwsMGY=; h=From:Date:Subject:To:Cc:Reply-To:From; b=XDlvCaxUSzM4QpvE8vtF432NIfo5MgMD5EkTxRRUF1J6OoG1Ca6SiSlK/en2GJoeI 2b30WLDdXpsQewxXbioYmM27+XRcVEGOdHDzm7g9fbNli3lyjSQ81I4AuB+TnyLeZH WOcM71Pa+523H2a6Vayx4A0PiXbzlYm2zYyVGGuYbglRG2CrIvbq/hyIs1rR53x64G V1TcvLscC/rJWZd1oFi0dU7/nqsY/8jI20N+v3qxPDmGXbXoOTSh1l7eqU3SsklES5 YpIFnepfbPFQEMytwoGAX0cMtctkn70kP6cXMoxTtu1SQK+ynifLbYJohR+gb9gKgN LCcD4awxQvSsw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 492B6C44511; Thu, 16 Jul 2026 06:47:25 +0000 (UTC) From: Jia Wang via B4 Relay Date: Thu, 16 Jul 2026 14:47:10 +0800 Subject: [PATCH] riscv: require vmemmap for NUMA balancing Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260716-numa_kconfig-v1-1-b0cd6d29accb@ultrarisc.com> X-B4-Tracking: v=1; b=H4sIAG1+WGoC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE vPSU3UzU4B8JSMDIzMDc0Mz3bzS3MT47OT8vLTMdF1DI+NUU0tLA1NTizQloJaCotS0zAqwcdG xEH5xaVJWanIJyAyl2loApLKF33AAAAA= X-Change-ID: 20260716-numa_kconfig-123e5990558f To: Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti Cc: linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Jia Wang X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784184444; l=2137; i=wangjia@ultrarisc.com; s=20260515; h=from:subject:message-id; bh=zX7msVePD9cWH1tEIezrckJapIDNnZ2LJUbuDS1r9Mw=; b=+GzWBgzTf9QJL3KiJ+0unqSrHP/5cWqUcnSLsVPvDjP0JMqzlClZX+fwtSLZ5ee7lnb/pLJXQ E8jeyNr/Xc+CSPNQYXkrgYOgMVTUk+LOqUVA+iabCBNXn7oKeVb9wot X-Developer-Key: i=wangjia@ultrarisc.com; a=ed25519; pk=wGVm18siRScehKOkOz0WKxgxDy7IezHEszhnN4/TUCY= X-Endpoint-Received: by B4 Relay for wangjia@ultrarisc.com/20260515 with auth_id=779 X-Original-From: Jia Wang Reply-To: wangjia@ultrarisc.com From: Jia Wang RISC-V randconfig can enable NUMA balancing while selecting SPARSEMEM_EXTREME without SPARSEMEM_VMEMMAP. In that layout, the section and node fields can consume enough page flag bits that LAST_CPUPID cannot fit in page->flags. The generic MM code then stores last_cpupid in struct page and emits the "Unfortunate NUMA and NUMA Balancing config" warning from mm/memory.c. NUMA balancing needs LAST_CPUPID storage, but this fallback grows struct page for a configuration that randconfig can select accidentally. Keep NUMA support available, but advertise RISC-V NUMA balancing support only when SPARSEMEM_VMEMMAP is enabled, where the page flag layout leaves room for LAST_CPUPID. This was originally seen with a RISC-V randconfig generated from KCONFIG_SEED=3D550012. Signed-off-by: Jia Wang --- RISC-V randconfig can enable NUMA balancing with SPARSEMEM_EXTREME while leaving SPARSEMEM_VMEMMAP disabled. In that layout, LAST_CPUPID may not fit in page->flags, so the generic MM code falls back to growing struct page and emits the "Unfortunate NUMA and NUMA Balancing config" warning. Limit RISC-V NUMA balancing support to SPARSEMEM_VMEMMAP configurations. This keeps NUMA available while preventing randconfig from selecting the known-bad NUMA balancing layout. The issue was originally seen with a RISC-V randconfig generated from KCONFIG_SEED=3D550012. --- arch/riscv/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index c0a6992933e4..681c5a2eb006 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -481,7 +481,7 @@ endchoice config NUMA bool "NUMA Memory Allocation and Scheduler Support" depends on SMP && MMU - select ARCH_SUPPORTS_NUMA_BALANCING + select ARCH_SUPPORTS_NUMA_BALANCING if SPARSEMEM_VMEMMAP select GENERIC_ARCH_NUMA select HAVE_SETUP_PER_CPU_AREA select NEED_PER_CPU_EMBED_FIRST_CHUNK --- base-commit: 37e2f878a7a660a216cc7a60459995fefd150f25 change-id: 20260716-numa_kconfig-123e5990558f Best regards, -- =20 Jia Wang