From: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: Alexey Kardashevskiy <aik@ozlabs.ru>,
qemu-ppc@nongnu.org, qemu-devel@nongnu.org,
Alexander Graf <agraf@suse.de>
Subject: Re: [Qemu-devel] [PATCH 7/7] numa: Allow empty nodes
Date: Mon, 16 Jun 2014 17:21:04 -0700 [thread overview]
Message-ID: <20140617002104.GK16644@linux.vnet.ibm.com> (raw)
In-Reply-To: <20140616203124.GC8629@otherpad.lan.raisama.net>
On 16.06.2014 [17:31:24 -0300], Eduardo Habkost wrote:
> On Mon, Jun 16, 2014 at 05:11:40PM -0300, Eduardo Habkost wrote:
> [...]
> > Wait, is the node ID visible to the guest at all? I believe it is a
> > QEMU-internal thing, just to allow the NUMA nodes to be ordered in the
> > command-line. I would even claim that the parameter is useless and
> > shouldn't have been introduced in the first place.
> >
> > What I don't se is: why you need the command-line to look like:
> > -numa node,id=1,mem=X
> > when you can simply write it as:
> > -numa node,id=0 -numa node,id=1,mem=X
>
> Oh, I believe now I see it: the problem is not that you don't just need
> "memory-less nodes" (which could be simply defined explicitly like
> above), but that you need non-contiguous node IDs, which are visible to
> the guest.
Well, and for powerpc, at least, there is some changing that needs
needed (the prior patches) to get memory-less Node 0 supported.
> In this case, my example above with two -numa options would work, but it
> would be confusing as the user just wants one node with ID=1 (instead of
> two nodes).
Yep, exactly. This is something we see on PowerVM, and it tends to trip
up the kernel (or lead to corner cases) and it would be nice to be able
to emulate these topologies with KVM.
> So, now your patch makes sense to me. But we first need something to
> make sure the following command-line:
> -numa node,id=3 -numa node,id=2
> be different from:
> -numa node,id=0 -numa node,id=1 -numa node,id=2 -numa node,id=3
>
> The former should divide the memory in half, between nodes 1 and 2. The
> latter should divide the memory in four, between nodes 0, 1, and 2.
Agreed on both those counts, but I think there is another case to ensure
we get right as well:
-numa node,id=3,mem=0 -numa node,id=2
All of the memory for the guest should be on node 2, but node 3 should
exist and be memoryless. But how do you differentiate between the values
in node_mem that started out zero and those that are set to 0 by the
user's arguments.
My first guess is that node_mem needs to be turned into a signed array
and we stuff -1 in there (currently 0 is written). Then we know any
non-negative entries are those specified by the user? Dunno if we care
about the reduction in per-node maximum memory (down to 2^63 from 2^64)?
Perhaps the resolution is the same to dealing with your case. Just
making it explicit what nodes were passed by the user in node_mem, and
counting the total correctly, should let us do the right thing?
Thanks,
Nish
next prev parent reply other threads:[~2014-06-17 0:21 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-16 7:53 [Qemu-devel] [PATCH 0/7] spapr: rework memory nodes Alexey Kardashevskiy
2014-06-16 7:53 ` [Qemu-devel] [PATCH 1/7] spapr: Move DT memory node rendering to a helper Alexey Kardashevskiy
2014-06-16 7:53 ` [Qemu-devel] [PATCH 2/7] spapr: Use DT memory node rendering helper for other nodes Alexey Kardashevskiy
2014-06-16 7:53 ` [Qemu-devel] [PATCH 3/7] spapr: Refactor spapr_populate_memory() Alexey Kardashevskiy
2014-06-18 5:04 ` Alexey Kardashevskiy
2014-06-20 19:10 ` Nishanth Aravamudan
2014-06-21 3:08 ` Alexey Kardashevskiy
2014-06-23 17:41 ` Nishanth Aravamudan
2014-06-23 22:02 ` Alexey Kardashevskiy
2014-06-20 22:55 ` Nishanth Aravamudan
2014-06-21 3:06 ` Alexey Kardashevskiy
2014-06-23 17:40 ` Nishanth Aravamudan
2014-06-24 6:07 ` Alexey Kardashevskiy
2014-06-24 17:07 ` Nishanth Aravamudan
2014-06-24 3:08 ` Nishanth Aravamudan
2014-06-24 6:14 ` Alexey Kardashevskiy
2014-06-24 17:01 ` Nishanth Aravamudan
2014-07-21 18:08 ` Nishanth Aravamudan
2014-06-16 7:53 ` [Qemu-devel] [PATCH 4/7] spapr: Split memory nodes to power-of-two blocks Alexey Kardashevskiy
2014-06-17 7:07 ` Alexey Kardashevskiy
2014-06-16 7:53 ` [Qemu-devel] [PATCH 5/7] spapr: Add a helper for node0_size calculation Alexey Kardashevskiy
2014-06-16 18:43 ` Nishanth Aravamudan
2014-06-16 7:53 ` [Qemu-devel] [PATCH 6/7] spapr: Fix ibm, associativity for memory nodes Alexey Kardashevskiy
2014-06-16 7:53 ` [Qemu-devel] [PATCH 7/7] numa: Allow empty nodes Alexey Kardashevskiy
2014-06-16 16:15 ` Eduardo Habkost
2014-06-16 18:49 ` Nishanth Aravamudan
2014-06-16 20:11 ` Eduardo Habkost
2014-06-16 20:31 ` Eduardo Habkost
2014-06-17 0:21 ` Nishanth Aravamudan [this message]
2014-06-17 0:16 ` Nishanth Aravamudan
2014-06-16 8:16 ` [Qemu-devel] [PATCH 0/7] spapr: rework memory nodes Alexey Kardashevskiy
2014-06-16 18:26 ` Nishanth Aravamudan
2014-06-16 20:51 ` Eduardo Habkost
2014-06-17 0:25 ` Nishanth Aravamudan
2014-06-17 1:37 ` Eduardo Habkost
2014-06-17 18:36 ` Nishanth Aravamudan
2014-06-17 1:41 ` Eduardo Habkost
2014-06-17 18:37 ` Nishanth Aravamudan
2014-06-17 5:51 ` Alexey Kardashevskiy
2014-06-17 14:07 ` Eduardo Habkost
2014-06-17 18:38 ` Nishanth Aravamudan
2014-06-17 19:22 ` Eduardo Habkost
2014-06-18 18:28 ` Nishanth Aravamudan
2014-06-18 19:33 ` Eduardo Habkost
2014-06-18 23:58 ` 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=20140617002104.GK16644@linux.vnet.ibm.com \
--to=nacc@linux.vnet.ibm.com \
--cc=agraf@suse.de \
--cc=aik@ozlabs.ru \
--cc=ehabkost@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).