From mboxrd@z Thu Jan 1 00:00:00 1970 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 745E217993; Thu, 28 Nov 2024 16:52:19 +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=1732812739; cv=none; b=eW0MJ3D6khFrI427DTtRBoh277iaSH6kLvFeroBw7PijsAk9k1LiHyXIECKwsJ39UD08s0VFuRkj7IxCUi0ZPdaCd/2ml4D6Vs7ggaa7IwLXrpewywI/euMxp6yT32/sfpG3lIDWIfIl3wcZdwC3+F20eM4qGEe8LzBRO7H+kGo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1732812739; c=relaxed/simple; bh=dvQEqAMMVBetwcgzVYNkCxfdi2w/wGckBTs6rFErkds=; h=Date:Message-ID:From:To:Cc:Subject:In-Reply-To:References: MIME-Version:Content-Type; b=py30dM4XhCMRNaUP6VdfnEHM8cTl8dtkrg03RIBBpeOzzku5keG3dlAzo6epWgK7aUPPsRGD0gu0fsdOEnvz4GTgpsOo0XjSa7imAJTupPnIVzwef7uelKuLLpQrbE+5Nsg6NZMINvR2827AE0DJBPjmL3K7ia39UQW/qWXrfOA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MtRWRKHL; 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="MtRWRKHL" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2A34BC4CECE; Thu, 28 Nov 2024 16:52:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1732812739; bh=dvQEqAMMVBetwcgzVYNkCxfdi2w/wGckBTs6rFErkds=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=MtRWRKHLz5x+AsW9kqDHUTkNjsDiNO/Zx1wSlQ9XD8FUBKGTVo6ihqaVNyGNpdZc2 wumjR408IYB9xBcUKSmUMtiXaCVCybzDT3r0u7v7cUijleLr1hpnqpmLCan+rC1ZhP hTzC2UwTsR2kCBSDXlEYSYltl1XTKZMgiexdnDuHeD6F3tYh1Ot4Q6iNfrN4Y3nkBn 79tCU9PPwJF9v4ap87SAc8KSgyyoGyQvaahGSObY4poMSJearQ7Yz+ROjybpoqq5HT v73I2p+lUViZdACHR6X0ZNLbvC5LWmHPPDMr7CQgmwIO7zncoWcuxD+R3lCbaHtLBp b7xpzwpV/8rKQ== Received: from [37.171.122.54] (helo=wait-a-minute.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1tGhkW-00GaEB-It; Thu, 28 Nov 2024 16:52:16 +0000 Date: Thu, 28 Nov 2024 16:52:14 +0000 Message-ID: <87y113s3lt.wl-maz@kernel.org> From: Marc Zyngier To: Mike Rapoport Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Catalin Marinas , Will Deacon , Zi Yan , Dan Williams , David Hildenbrand , Andrew Morton , stable@vger.kernel.org Subject: Re: [PATCH] arch_numa: Restore nid checks before registering a memblock with a node In-Reply-To: References: <20241127193000.3702637-1-maz@kernel.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/29.4 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-SA-Exim-Connect-IP: 37.171.122.54 X-SA-Exim-Rcpt-To: rppt@kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, catalin.marinas@arm.com, will@kernel.org, ziy@nvidia.com, dan.j.williams@intel.com, david@redhat.com, akpm@linux-foundation.org, stable@vger.kernel.org X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Hi Mike, On Thu, 28 Nov 2024 07:03:33 +0000, Mike Rapoport wrote: > > Hi Marc, > > > diff --git a/drivers/base/arch_numa.c b/drivers/base/arch_numa.c > > index e187016764265..5457248eb0811 100644 > > --- a/drivers/base/arch_numa.c > > +++ b/drivers/base/arch_numa.c > > @@ -207,7 +207,21 @@ static void __init setup_node_data(int nid, u64 start_pfn, u64 end_pfn) > > static int __init numa_register_nodes(void) > > { > > int nid; > > - > > + struct memblock_region *mblk; > > + > > + /* Check that valid nid is set to memblks */ > > + for_each_mem_region(mblk) { > > + int mblk_nid = memblock_get_region_node(mblk); > > + phys_addr_t start = mblk->base; > > + phys_addr_t end = mblk->base + mblk->size - 1; > > + > > + if (mblk_nid == NUMA_NO_NODE || mblk_nid >= MAX_NUMNODES) { > > + pr_warn("Warning: invalid memblk node %d [mem %pap-%pap]\n", > > + mblk_nid, &start, &end); > > + return -EINVAL; > > + } > > We have memblock_validate_numa_coverage() that checks that amount of memory > with unset node id is less than a threshold. The loop here can be replaced > with something like > > if (!memblock_validate_numa_coverage(0)) > return -EINVAL; Unfortunately, that doesn't seem to result in something that works (relevant extract only): [ 0.000000] NUMA: no nodes coverage for 9MB of 65516MB RAM [ 0.000000] NUMA: Faking a node at [mem 0x0000000000500000-0x0000000fff0fffff] [ 0.000000] NUMA: no nodes coverage for 0MB of 65516MB RAM [ 0.000000] Unable to handle kernel paging request at virtual address 0000000000001d40 Any idea? M. -- Without deviation from the norm, progress is not possible.