Re: [Qemu-devel] qemu -numa option and non-contiguous CPU ranges

2012-06-22 Thread Daniel P. Berrange
On Thu, Jun 21, 2012 at 11:39:46PM +0200, Andre Przywara wrote:
 On 06/21/2012 07:51 PM, Eduardo Habkost wrote:
 Hi,
 
 I just noticed libvirt tries to use the -numa option in a way that qemu
 never understood: if a node is configured to have a non-contiguous set
 of CPUs, it tries to generate a command-line option that looks like:
 
 -numa node,nodeid=...,cpus=0,2,4,mem=...
  ^
 
 But this format was never supported by qemu. This format is even a bit
 weird, as , is an option separator, and it is being used as a
 separator _inside_ an option.
 
 Exactly this was the reason back then to not support non-contiguous
 set of CPUs. Inside qemu there is no reason why this shouldn't work,
 it was just hard to write on the command line. So after a short
 discussion we decided to drop this for the time being. If you have a
 great idea how to specify this (I think a comma will not work,
 because it will be catched earlier), I am all ears.

Lets just use a ';' or ':' as the seperator instead ?

Daniel
-- 
|: http://berrange.com  -o-http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org  -o- http://virt-manager.org :|
|: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org   -o-   http://live.gnome.org/gtk-vnc :|



Re: [Qemu-devel] qemu -numa option and non-contiguous CPU ranges

2012-06-22 Thread Eduardo Habkost
On Fri, Jun 22, 2012 at 11:00:57AM +0100, Daniel P. Berrange wrote:
 On Thu, Jun 21, 2012 at 11:39:46PM +0200, Andre Przywara wrote:
  On 06/21/2012 07:51 PM, Eduardo Habkost wrote:
  Hi,
  
  I just noticed libvirt tries to use the -numa option in a way that qemu
  never understood: if a node is configured to have a non-contiguous set
  of CPUs, it tries to generate a command-line option that looks like:
  
  -numa node,nodeid=...,cpus=0,2,4,mem=...
   ^
  
  But this format was never supported by qemu. This format is even a bit
  weird, as , is an option separator, and it is being used as a
  separator _inside_ an option.
  
  Exactly this was the reason back then to not support non-contiguous
  set of CPUs. Inside qemu there is no reason why this shouldn't work,
  it was just hard to write on the command line. So after a short
  discussion we decided to drop this for the time being. If you have a
  great idea how to specify this (I think a comma will not work,
  because it will be catched earlier), I am all ears.
 
 Lets just use a ';' or ':' as the seperator instead ?

Sounds like a better option, instead of making the -numa option parsing
be different from all other options. I was just wondering if it was
worth making some effort to make qemu compatible with the current
libvirt code. (I am inclined to say it is not worth it, as it never
worked before)

-- 
Eduardo



Re: [Qemu-devel] qemu -numa option and non-contiguous CPU ranges

2012-06-21 Thread Andre Przywara

On 06/21/2012 07:51 PM, Eduardo Habkost wrote:

Hi,

I just noticed libvirt tries to use the -numa option in a way that qemu
never understood: if a node is configured to have a non-contiguous set
of CPUs, it tries to generate a command-line option that looks like:

-numa node,nodeid=...,cpus=0,2,4,mem=...
 ^

But this format was never supported by qemu. This format is even a bit
weird, as , is an option separator, and it is being used as a
separator _inside_ an option.


Exactly this was the reason back then to not support non-contiguous set 
of CPUs. Inside qemu there is no reason why this shouldn't work, it was 
just hard to write on the command line. So after a short discussion we 
decided to drop this for the time being. If you have a great idea how to 
specify this (I think a comma will not work, because it will be catched 
earlier), I am all ears.


Regards,
Andre.


My question is: should we support this option format in qemu, or should
we change libvirt to use another format (that has yet to be implemented,
because currently there's no way to specify a non-contiguous set of CPUs
for a NUMA node).

Any suggestions?




--
Andre Przywara
AMD-Operating System Research Center (OSRC), Dresden, Germany