From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BAE692701C4 for ; Wed, 10 Jun 2026 01:45:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.173 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781055938; cv=none; b=jsA+mjvnrOl+YkTYzC2G1oBsKxVo537wybaWrMtrBaTYQmCOrvhk9DRCQQUW13KR+bEQKFOdHMFkhU2ikPyw3I9QTNJ5ctnq7ll7iH/FFbcfyit+2kK7+d0eFh6qmm5lHS07m73sIuN8s6LUDtKuK36akCW07cwjywWSImWMYsU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781055938; c=relaxed/simple; bh=8Jzxfarh3kFcVduKM3nTtCfp1Kiq3jIGAAIiFN4XSUM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FomiduuizV39WTTJzrRuT4bwfvK9tGny3/3la2lyK99v7n9h4YaxhNbZN8Ts16ANq7htu4IZxhPL5ahi71bNWkLQlj5tbAf6sU6gVVCOxW4CHrPVXgBkFUgTjeco7Hejt4SuDBhqcrfnMy/jxzb4OD3GFmnzrvKoaaqcTOx0O3k= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=gourry.net; spf=pass smtp.mailfrom=gourry.net; dkim=pass (2048-bit key) header.d=gourry.net header.i=@gourry.net header.b=rYvBp0RK; arc=none smtp.client-ip=209.85.160.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=gourry.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gourry.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gourry.net header.i=@gourry.net header.b="rYvBp0RK" Received: by mail-qt1-f173.google.com with SMTP id d75a77b69052e-5175cb5946dso41140871cf.0 for ; Tue, 09 Jun 2026 18:45:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gourry.net; s=google; t=1781055930; x=1781660730; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pKutm9+cyTIXeV2mo8MjsDLORYjIUZMG6rmHK81GwDk=; b=rYvBp0RK6rS5y9eHOoaKo8TGPX0WRF9hW1coBVw12TFzMDXM3WtuEGMTLEOVjJcJr3 +mupQNyLOQ5bxwZ68Ou/xQB0QGoGBJkXSYqmd3tRIkuC1xsnFROsCb/ohUmDludUpMra ztEKMdCCteNaqWK1XmKn6slVV18pgfU0iatsRg7ei7stV/fcfemAW79oRLHOEGjEXFtd vmo8mpmD0KcCNMNRy2cN88bHe/cC4+CMUB8pNOksO1LV5UvZAY5s4I04I2GS0OweWk0j 1qVWvPMy5fs/E8B2OThIlMW8AAFdGN44EOoITnzzWIVZYtoyc3tzFg16kSktdHUfoINc NpQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781055930; x=1781660730; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=pKutm9+cyTIXeV2mo8MjsDLORYjIUZMG6rmHK81GwDk=; b=GvaPjSw6axzTpZlNFjL8Khyfkk2VX0afMdnoUljtrh4EfDHUNgv4ZMv6ezvNvjn0PA eIfW48LAp41DC6vwyW60aqne+jPOC7En4kyhZ6gcxlTvGIwQfOPILNwHQUQoHUBjs/9S lEpImyosXQjyoPXS/TvXbVzWIwDk8r5Nt0UP9ol9IIJZygRxSkWp0m4/Gtd0HAL8wWK+ 0ZJJGA0Jhj+49qCBCWIVh6hmpZ6gerG3iAAavAQEKUnXBrSFFKonS4a4Ug7N8hos4+QR J72V/Fqs9vUWjbjqz3MoyFpQY+MXHMAEkxtk3dQ+3EuFxFTQxknLUd8OicJN8qXIDeFD Q6iQ== X-Forwarded-Encrypted: i=1; AFNElJ8vqznMpYrTyhp0jqHOCIkXOqfNHmthAxCwTDSYwN25NWGK/fZyBLHvDbmuvxImfJReKVutMBkZKLkqwKk=@vger.kernel.org X-Gm-Message-State: AOJu0YyAq+0klZd44BrOQxBo2oZy20WamU4pkeqN5li9sU4VmRTeJeaw 3++hL+7TUZtScXEX3C7e9hJ4DVnLSxz51r/52pDp1FaJG8XCwrmamI2mMrUQjJq7cFg= X-Gm-Gg: Acq92OHOcFeQeGimMfApPMAhO2H0SduVsGpurL3XUoOrWAehN3fMbLE1FZo9a/hz77J tHj0mv6V4zmZTplVUVT1Np+FI3loPf58c2nTc3X6tPp50IEvHhgJWe6xGjZ0mmfoxg0otzj6vEy SK/p2RjcqTV69EfduKK0lAXksSQrkBzKBIM7JQ0fJ/sS4yl/MtdOiwo02+2W7bKvJjMnYWDSDNh nWTRAU5GhPfqqbv7kpwWrAkaH6xAWYeYVUzVMmltAZrHuvOTCDgDxMZkIrfDNKJqmuphsLSvCCA dAmkNcQBDpHEMjiSKrXN+cF0vHVwGIpb77jZe1vqbMrtaxaQYgstFz52UYts225ugjm1RTE1hM5 h9xSkokjZQKoGECsZ2go1GLWUTacV3CgPtXYqx4gyvv2zfPyo/pGq/ZI3rD75yZM/ManSSH/MW5 LHRunkT39DTpeP5R0zRmWzfKAdic3Ek62gDNjtymmOXQ89WphCd7n9KRfk5ACjtBgGSToedGPIf 27orQz+CJFSGckvQKfSaXE= X-Received: by 2002:a05:622a:155:b0:516:cee1:4727 with SMTP id d75a77b69052e-51795aeb96bmr323037361cf.14.1781055930465; Tue, 09 Jun 2026 18:45:30 -0700 (PDT) Received: from gourry-fedora-PF4VCD3F.lan (pool-173-79-60-52.washdc.fios.verizon.net. [173.79.60.52]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-51775c07e91sm205923261cf.4.2026.06.09.18.45.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 18:45:30 -0700 (PDT) From: Gregory Price To: linux-mm@kvack.org Cc: x86@kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, driver-core@lists.linux.dev, kernel-team@meta.com, corbet@lwn.net, skhan@linuxfoundation.org, dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@kernel.org, mingo@redhat.com, bp@alien8.de, hpa@zytor.com, rafael@kernel.org, lenb@kernel.org, gregkh@linuxfoundation.org, dakr@kernel.org, akpm@linux-foundation.org, rppt@kernel.org, rdunlap@infradead.org, feng.tang@linux.alibaba.com, dapeng1.mi@linux.intel.com, elver@google.com, kuba@kernel.org, ebiggers@kernel.org, lirongqing@baidu.com, paulmck@kernel.org, gourry@gourry.net, dave.jiang@intel.com, jic23@kernel.org, xueshuai@linux.alibaba.com, kai.huang@intel.com Subject: [RFC PATCH 2/3] acpi/numa: add CONFIG_ACPI_NUMA_STANDBY_NODES Date: Tue, 9 Jun 2026 21:45:16 -0400 Message-ID: <20260610014517.253609-3-gourry@gourry.net> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260610014517.253609-1-gourry@gourry.net> References: <20260610014517.253609-1-gourry@gourry.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Some platforms want to reserve empty NUMA nodes at boot so that drivers can later place hotplugged memory on distinct nodes for memory tiering or isolation, without those nodes being described by BIOS. Add CONFIG_ACPI_NUMA_STANDBY_NODES, a platform-independent count of empty nodes to reserve. Deferring standby node creation until after NUMA emulation runs keeps old numbering behaviors consistent for NUMA emulation users. Signed-off-by: Gregory Price --- drivers/acpi/numa/Kconfig | 15 +++++++++++++++ drivers/acpi/numa/srat.c | 3 +++ 2 files changed, 18 insertions(+) diff --git a/drivers/acpi/numa/Kconfig b/drivers/acpi/numa/Kconfig index f33194d1e43f..ecf27bf45e5b 100644 --- a/drivers/acpi/numa/Kconfig +++ b/drivers/acpi/numa/Kconfig @@ -13,3 +13,18 @@ config ACPI_HMAT register memory initiators with their targets, and export performance attributes through the node's sysfs device if provided. + +config ACPI_NUMA_STANDBY_NODES + int "Additional standby NUMA nodes for runtime claiming" + depends on ACPI_NUMA + range 0 16 + default 0 + help + Number of additional empty NUMA nodes to reserve at boot for + runtime claiming via numa_request_exclusive_node(). + + These nodes have no memory and no SRAT PXM association. + Drivers can claim them to place hotplugged memory on distinct + NUMA nodes for memory tiering or isolation purposes. + + Set to 0 (default) to disable. diff --git a/drivers/acpi/numa/srat.c b/drivers/acpi/numa/srat.c index 62d4a8df0b8c..d7b0e4ece610 100644 --- a/drivers/acpi/numa/srat.c +++ b/drivers/acpi/numa/srat.c @@ -664,6 +664,9 @@ int __init acpi_numa_init(void) return cnt; else if (!parsed_numa_memblks) return -ENOENT; + + /* Request any standby nodes (created after numa emulation) */ + numa_request_standby_count(CONFIG_ACPI_NUMA_STANDBY_NODES); return 0; } -- 2.54.0