Hi Marc,
On Sun, Dec 01, 2024 at 09:27:02AM +0000, Marc Zyngier wrote:
Commit 767507654c22 ("arch_numa: switch over to numa_memblks") significantly cleaned up the NUMA registration code, but also dropped a significant check that was refusing to accept to configure a memblock with an invalid nid.
...
while previous kernel versions were able to recognise how brain-damaged the machine is, and only build a fake node.
Use the memblock_validate_numa_coverage() helper to restore some sanity and a "working" system.
Fixes: 767507654c22 ("arch_numa: switch over to numa_memblks") Suggested-by: Mike Rapoport rppt@kernel.org Signed-off-by: Marc Zyngier maz@kernel.org Cc: Catalin Marinas catalin.marinas@arm.com Cc: Will Deacon will@kernel.org Cc: Zi Yan ziy@nvidia.com Cc: Dan Williams dan.j.williams@intel.com Cc: David Hildenbrand david@redhat.com Cc: Andrew Morton akpm@linux-foundation.org Cc: stable@vger.kernel.org
drivers/base/arch_numa.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/drivers/base/arch_numa.c b/drivers/base/arch_numa.c index e187016764265..c63a72a1fed64 100644 --- a/drivers/base/arch_numa.c +++ b/drivers/base/arch_numa.c @@ -208,6 +208,10 @@ static int __init numa_register_nodes(void) { int nid;
- /* Check the validity of the memblock/node mapping */
- if (!memblock_validate_numa_coverage(1))
I've changed this to memblock_validate_numa_coverage(0) and applied along with my patch that changed memblock_validate_numa_coverage() to work with 0:
https://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock.git/log/?h=thu...
Can you please verify that it works on your "quality hardware"?
return -EINVAL;
- /* Finally register nodes. */ for_each_node_mask(nid, numa_nodes_parsed) { unsigned long start_pfn, end_pfn;
-- 2.39.2