From: Dario Faggioli <dario.faggioli@citrix.com>
To: Elena Ufimtseva <ufimtseva@gmail.com>
Cc: Keir Fraser <keir@xen.org>,
Ian Campbell <Ian.Campbell@citrix.com>,
Li Yechen <lccycc123@gmail.com>,
George Dunlap <george.dunlap@eu.citrix.com>,
Matt Wilson <msw@linux.com>,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
Ian Jackson <ian.jackson@eu.citrix.com>,
Jan Beulich <JBeulich@suse.com>,
xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH v3 1/7] xen: vNUMA support for PV guests
Date: Wed, 27 Nov 2013 02:23:09 +0100 [thread overview]
Message-ID: <1385515389.15201.90.camel@Solace> (raw)
In-Reply-To: <CAEr7rXihO2W9xgrb3ueRkRx3L0Agcd=vo5TBAmwU2yzXD=ZTxg@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 2785 bytes --]
On mar, 2013-11-26 at 16:59 -0500, Elena Ufimtseva wrote:
> Hello Jan and Dario.
>
Hi,
> I have looked at what Jan asked and wanted to see if that can be resolved.
>
> Jan is right, if the guest is running with Linux configured with
> maxcpus less than vcpus in VM config,
> there is a problem.
>
Yep, there is indeed.
> On this boot stage where xen_numa_init is called xen_smp_prepare_cpus
> equals to vcpus in config;
> It only will be reduced to maxcpus (from kernel boot args) after
> xen_numa_init during xen_smp_prepare.
>
> In xen_numa_init I have all values I need to make a decision in
> regards to initialize vnuma or not, or modify.
>
> These are the numbers I have in xen_numa_init:
> num_possible_cpus() = hypervisor provided guest vcpus;
> setup_max_cpus = boot kernel param maxcpus;
>
> When setup_max_cpus > num_possible_cpus, num_possible_cpus will be brought up;
>
Wait. I think I see what you mean, but that's probably a different issue
from what (at least as far as I understood it) Jan is reporting.
So, in Linux you can specify NR_CPUS at compile time, right? Imagine
doing that and setting it to 1. Then, you use the resulting kernel for a
VM, and in the VM's config file you specify 4 vcpus and 2 vnodes.
Now, apart from what you say above, i.e., only num_possible_cpus()=1
will be brought up, that would also mean that, in xen_numa_init(), you
allocate an array only 1 element big for hosting vnuma data and pass it
to Xen, which will overflow it when trying to put info for 2 vnodes
there!
That's the thing we want to avoid...
> I can detect that setup_max_cpus < num_possible_cpus and do not init
> vnuma at all, and just do a fake node.
> I can also make sure that hypervisor is aware of it (by calling same
> subop with NULL, lets suppose).
>
Right, but I'm not sure I'm getting how detecting that would relevant to
the issue above... What we'd need is something like
nr_vnodes<num_possible_cpus(), which means we need some mechanism to
retrieve the number of nodes _before_ allocating the arrays.
As per what to do, well, once we have a way to know te number of vnodes,
you just can allocate arrays of correct size and avoid this issue all
together. Of course, as we do not support guests with more nodes than
vcpus, at that time you can also check whether
nr_vnodes>num_possible_cpus() and, if yes, have xen_numa_init() take
some error path, but that is a different thing.
Does this make sense?
Regards,
Dario
--
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)
[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
[-- Attachment #2: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2013-11-27 1:23 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-18 20:24 [PATCH v3 0/7] vNUMA introduction Elena Ufimtseva
2013-11-18 20:24 ` [PATCH v3 1/7] xen: vNUMA support for PV guests Elena Ufimtseva
2013-11-19 7:41 ` Dario Faggioli
2013-11-19 14:01 ` Jan Beulich
2013-11-19 14:35 ` Dario Faggioli
2013-11-19 14:48 ` Jan Beulich
2013-11-19 15:42 ` Dario Faggioli
2013-11-19 15:54 ` Jan Beulich
2013-11-19 16:36 ` Dario Faggioli
2013-11-19 16:43 ` Jan Beulich
2013-11-26 21:59 ` Elena Ufimtseva
2013-11-27 1:23 ` Dario Faggioli [this message]
2013-11-27 8:14 ` Jan Beulich
2013-12-02 17:06 ` Elena Ufimtseva
2013-12-02 17:09 ` Jan Beulich
2013-12-02 17:27 ` Elena Ufimtseva
2013-11-18 20:24 ` [PATCH v3 2/7] libxc: Plumb Xen with vNUMA topology for domain Elena Ufimtseva
2013-11-19 8:37 ` Dario Faggioli
2013-11-19 14:03 ` Konrad Rzeszutek Wilk
2013-11-19 22:06 ` Elena Ufimtseva
2013-11-18 20:24 ` [PATCH v3 3/7] libxc: vnodes allocation on NUMA nodes Elena Ufimtseva
2013-11-19 14:22 ` Dario Faggioli
2013-11-18 20:24 ` [PATCH v3 4/7] libxl: vNUMA supporting interface Elena Ufimtseva
2013-11-19 18:37 ` Dario Faggioli
2013-11-21 9:59 ` Li Yechen
2013-11-26 22:14 ` Elena Ufimtseva
2013-11-26 23:21 ` Dario Faggioli
2013-12-02 18:14 ` Elena Ufimtseva
2013-11-18 20:24 ` [PATCH v3 5/7] libxl: vNUMA configuration parser Elena Ufimtseva
2013-11-19 17:20 ` Dario Faggioli
2013-11-20 22:48 ` Matthew Daley
2013-11-21 3:20 ` Elena Ufimtseva
2013-11-18 20:24 ` [PATCH v3 6/7] xen: adds vNUMA info debug-key u Elena Ufimtseva
2013-11-22 18:15 ` Dario Faggioli
2013-11-18 20:24 ` [PATCH v3 7/7] xl: docs for xl config vnuma options Elena Ufimtseva
2013-11-19 17:23 ` Dario Faggioli
2013-11-19 17:26 ` George Dunlap
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=1385515389.15201.90.camel@Solace \
--to=dario.faggioli@citrix.com \
--cc=Ian.Campbell@citrix.com \
--cc=JBeulich@suse.com \
--cc=george.dunlap@eu.citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=keir@xen.org \
--cc=lccycc123@gmail.com \
--cc=msw@linux.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=ufimtseva@gmail.com \
--cc=xen-devel@lists.xenproject.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).