From: Thomas Renninger <trenn@suse.de>
To: ykzhao <yakui.zhao@intel.com>
Cc: Prarit Bhargava <prarit@redhat.com>,
Matthew Garrett <mjg@redhat.com>,
"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>
Subject: Re: [RFC PATCH]: ACPI: Automatically online hot-added memory
Date: Fri, 12 Mar 2010 14:01:54 +0100 [thread overview]
Message-ID: <201003121401.54675.trenn@suse.de> (raw)
In-Reply-To: <1268268915.3606.101.camel@localhost.localdomain>
On Thursday 11 March 2010 01:55:15 ykzhao wrote:
> On Wed, 2010-03-10 at 21:28 +0800, Prarit Bhargava wrote:
> > >
> > > Why do we need to see whether the memory is onlined before bringing cpu
> > > to online state? It seems that there is no dependency between cpu online
> > > and memory online.
> > >
> > >
> >
> > Yakui,
> >
>
> Thanks for the explanation.
>
> > Here's a deeper look into the issue. New Intel processors have an
> > on-die memory controller and this means that as the socket comes and
> > goes, so does the memory "behind" the socket.
>
> Yes. The nehalem processor has the integrated memory controller. But it
> is not required that the hot-added memory should be onlined before
> bringing up CPU.
> I do the following memory-hotplug test on one Machine.
> a. Before hot plugging memory, four CPUs socket are installed and
> all the logical CPU are brought up. (Only one node has the memory)
> b. The memory is hot-plugged and then the memory is onlined so that
> it can be accessed by the system.
>
> In the above testing case the CPU is brought up before onlining the
> hot-added memory. And the test shows that it can work well.
>
> >
> > ie) with new processors it is possible that an entire node which
> > consists of memory and cpus comes and goes with the socket enable and
> > disable.
> >
> > The cpu bringup code does local node allocations for the cpu. If the
> > memory connected to the node (which is "behind" the socket) isn't
> > online, then these allocations fail, and then the cpu bringup fails.
>
> If the CPU can't allocate the memory from its own node, it can turn to
> other node and see whether the memory can be allocated. And this depends
> on the NUMA allocation policy.
Yes and this is broken and needs fixing.
Yakui, I expect you miss this patch and wrongly online the cpus to existing
nodes, therefore you do not run into "out of memory" conditions:
0271f91003d3703675be13b8865618359a6caa1f
I know for sure that slab is broken.
slub behaves different, but I am not sure whether this is due to wrong CPU
hotadd code (processor_core.c is also broken and you get wrong C-state info
from BIOS tables on hotadded CPUs)
Prarit: Can you retest with slub and processor.max_cstate=1, this could/should
work.
AFAIK vmware injects memory in the same way into clients, so you may have
different behavior of virtualized Linux clients.
This is a work around for current memory management not being able
to allocate from foreign nodes. That should not mean that I generally
vote against this to get added. If it works reliably why not add a work
around until the more complicated stuff works.
One question: You also want to automatically add the CPUs, once a CPU hotplug
event got fired, right?
The fact that the memory hotplug driver adds the memory immediately once notified,
does not ensure that the HW/BIOS fires this event first.
Theoretically you need a logic to not add CPUs to memoryless nodes, poll/wait
until memory got added, etc.
Thomas
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2010-03-12 13:01 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-09 14:12 [RFC PATCH]: ACPI: Automatically online hot-added memory Prarit Bhargava
2010-03-09 15:42 ` Matthew Garrett
2010-03-09 18:27 ` Prarit Bhargava
2010-03-10 1:57 ` ykzhao
2010-03-10 13:28 ` Prarit Bhargava
2010-03-11 0:55 ` ykzhao
2010-03-11 2:18 ` Prarit Bhargava
2010-03-11 8:07 ` ykzhao
2010-03-11 8:32 ` chen gong
2010-03-11 11:25 ` Prarit Bhargava
2010-03-12 13:18 ` Thomas Renninger
2010-03-17 18:47 ` Prarit Bhargava
2010-03-19 16:55 ` Thomas Renninger
2010-03-19 17:23 ` Prarit Bhargava
2010-03-20 20:51 ` Thomas Renninger
2010-03-24 14:40 ` Thomas Renninger
2010-03-24 15:16 ` Prarit Bhargava
2010-03-11 11:18 ` Prarit Bhargava
2010-03-12 1:31 ` ykzhao
2010-03-12 13:01 ` Thomas Renninger [this message]
2010-03-17 15:24 ` Prarit Bhargava
2010-03-09 19:10 ` Alex Chiang
2010-03-09 19:10 ` Alex Chiang
2010-03-09 19:15 ` Prarit Bhargava
2010-03-09 19:15 ` Prarit Bhargava
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=201003121401.54675.trenn@suse.de \
--to=trenn@suse.de \
--cc=linux-acpi@vger.kernel.org \
--cc=mjg@redhat.com \
--cc=prarit@redhat.com \
--cc=yakui.zhao@intel.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.