All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: Mike Rapoport <rppt@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>, Zi Yan <ziy@nvidia.com>,
	Dan Williams <dan.j.williams@intel.com>,
	David Hildenbrand <david@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	stable@vger.kernel.org
Subject: Re: [PATCH] arch_numa: Restore nid checks before registering a memblock with a node
Date: Thu, 28 Nov 2024 16:52:14 +0000	[thread overview]
Message-ID: <87y113s3lt.wl-maz@kernel.org> (raw)
In-Reply-To: <Z0gVxWstZdKvhY6m@kernel.org>

Hi Mike,

On Thu, 28 Nov 2024 07:03:33 +0000,
Mike Rapoport <rppt@kernel.org> 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.


  reply	other threads:[~2024-11-28 16:53 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-27 19:30 [PATCH] arch_numa: Restore nid checks before registering a memblock with a node Marc Zyngier
2024-11-28  7:03 ` Mike Rapoport
2024-11-28 16:52   ` Marc Zyngier [this message]
2024-11-29  8:24     ` Mike Rapoport
2024-11-29  8:42       ` Marc Zyngier
2024-11-29  9:23         ` Mike Rapoport
2024-11-29 10:41           ` Andrew Morton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87y113s3lt.wl-maz@kernel.org \
    --to=maz@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=catalin.marinas@arm.com \
    --cc=dan.j.williams@intel.com \
    --cc=david@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rppt@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=will@kernel.org \
    --cc=ziy@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.