From: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
To: Christoph Lameter <cl@linux.com>
Cc: linux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org,
anton@samba.org, rientjes@google.com
Subject: Re: Node 0 not necessary for powerpc?
Date: Mon, 19 May 2014 11:24:00 -0700 [thread overview]
Message-ID: <20140519182400.GM8941@linux.vnet.ibm.com> (raw)
In-Reply-To: <20140313164949.GC22247@linux.vnet.ibm.com>
On 13.03.2014 [09:49:49 -0700], Nishanth Aravamudan wrote:
> On 12.03.2014 [08:41:40 -0500], Christoph Lameter wrote:
> > On Tue, 11 Mar 2014, Nishanth Aravamudan wrote:
> > > I have a P7 system that has no node0, but a node0 shows up in numactl
> > > --hardware, which has no cpus and no memory (and no PCI devices):
> >
> > Well as you see from the code there has been so far the assumption that
> > node 0 has memory. I have never run a machine that has no node 0 memory.
>
> Do you mean beyond the initialization? I didn't see anything obvious so
> far in the code itself that assumes a given node has memory (in the
> sense of the nid). What are your thoughts about how best to support
> this?
Ah, I found one path that is problematic on powerpc:
I'm seeing a panic at boot with this change on an LPAR which actually
has no Node 0. Here's what I think is happening:
start_kernel
...
-> setup_per_cpu_areas
-> pcpu_embed_first_chunk
-> pcpu_fc_alloc
-> ___alloc_bootmem_node(NODE_DATA(cpu_to_node(cpu), ...
-> smp_prepare_boot_cpu
-> set_numa_node(boot_cpuid)
So we panic on the NODE_DATA call. It seems that ia64, at least, uses
pcpu_alloc_first_chunk rather than embed. x86 has some code to handle
early calls of cpu_to_node (early_cpu_to_node) and sets the mapping for
all CPUs in setup_per_cpu_areas().
Thoughts? Does that mean we need something similar to x86 for powerpc?
Thanks,
Nish
WARNING: multiple messages have this Message-ID (diff)
From: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
To: Christoph Lameter <cl@linux.com>
Cc: linux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org,
anton@samba.org, rientjes@google.com, benh@kernel.crashing.org
Subject: Re: Node 0 not necessary for powerpc?
Date: Mon, 19 May 2014 11:24:00 -0700 [thread overview]
Message-ID: <20140519182400.GM8941@linux.vnet.ibm.com> (raw)
In-Reply-To: <20140313164949.GC22247@linux.vnet.ibm.com>
On 13.03.2014 [09:49:49 -0700], Nishanth Aravamudan wrote:
> On 12.03.2014 [08:41:40 -0500], Christoph Lameter wrote:
> > On Tue, 11 Mar 2014, Nishanth Aravamudan wrote:
> > > I have a P7 system that has no node0, but a node0 shows up in numactl
> > > --hardware, which has no cpus and no memory (and no PCI devices):
> >
> > Well as you see from the code there has been so far the assumption that
> > node 0 has memory. I have never run a machine that has no node 0 memory.
>
> Do you mean beyond the initialization? I didn't see anything obvious so
> far in the code itself that assumes a given node has memory (in the
> sense of the nid). What are your thoughts about how best to support
> this?
Ah, I found one path that is problematic on powerpc:
I'm seeing a panic at boot with this change on an LPAR which actually
has no Node 0. Here's what I think is happening:
start_kernel
...
-> setup_per_cpu_areas
-> pcpu_embed_first_chunk
-> pcpu_fc_alloc
-> ___alloc_bootmem_node(NODE_DATA(cpu_to_node(cpu), ...
-> smp_prepare_boot_cpu
-> set_numa_node(boot_cpuid)
So we panic on the NODE_DATA call. It seems that ia64, at least, uses
pcpu_alloc_first_chunk rather than embed. x86 has some code to handle
early calls of cpu_to_node (early_cpu_to_node) and sets the mapping for
all CPUs in setup_per_cpu_areas().
Thoughts? Does that mean we need something similar to x86 for powerpc?
Thanks,
Nish
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2014-05-19 18:24 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-11 19:56 Node 0 not necessary for powerpc? Nishanth Aravamudan
2014-03-11 19:56 ` Nishanth Aravamudan
2014-03-12 2:02 ` David Rientjes
2014-03-12 2:02 ` David Rientjes
2014-03-13 16:48 ` Nishanth Aravamudan
2014-03-13 16:48 ` Nishanth Aravamudan
2014-03-12 13:41 ` Christoph Lameter
2014-03-12 13:41 ` Christoph Lameter
2014-03-13 16:49 ` Nishanth Aravamudan
2014-03-13 16:49 ` Nishanth Aravamudan
2014-05-19 18:24 ` Nishanth Aravamudan [this message]
2014-05-19 18:24 ` Nishanth Aravamudan
2014-05-21 14:16 ` Christoph Lameter
2014-05-21 14:16 ` Christoph Lameter
2014-05-21 18:58 ` Tejun Heo
2014-05-21 18:58 ` Tejun Heo
2014-05-21 19:57 ` Nishanth Aravamudan
2014-05-21 19:57 ` Nishanth Aravamudan
2014-06-09 21:47 ` David Rientjes
2014-06-09 21:47 ` David Rientjes
2014-06-10 23:31 ` Nishanth Aravamudan
2014-06-10 23:31 ` Nishanth Aravamudan
2014-06-19 14:59 ` Tejun Heo
2014-06-19 14:59 ` Tejun Heo
2014-06-19 17:40 ` Nishanth Aravamudan
2014-06-19 17:40 ` Nishanth Aravamudan
2014-06-19 17:14 ` Nishanth Aravamudan
2014-06-19 17:14 ` Nishanth Aravamudan
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=20140519182400.GM8941@linux.vnet.ibm.com \
--to=nacc@linux.vnet.ibm.com \
--cc=anton@samba.org \
--cc=cl@linux.com \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=rientjes@google.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.