Hello all,

I was recently trying out NUMA placement for my guests on both x86_64 and ppc64 machines. When booting a guest on the x86_64 machine, the following specs were valid (obviously, just notable excepts from the xml):

<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
 <vcpu placement='static'>4</vcpu>
...
  <cpu>
    <topology sockets='4' cores='1' threads='1'/>
    <numa>
      <cell cpus='0-2' memory='6144'/>
      <cell cpus='3' memory='2048'/>
    </numa>
  </cpu>

However, on ppc64 this causes the following error:

error: Failed to create domain from sample_guest.xml
error: internal error: early end of file from monitor: possible problem:
2014-09-11T18:44:25.502140Z qemu-system-ppc64: total memory for NUMA nodes (8388608) should equal RAM size (200000000)

The 200000000 is actually 8192 MB in bytes and hexidecimal. This is apparently just an issue with the error message.

The following specs work on ppc64:
  <cpu>
    <topology sockets='4' cores='1' threads='1'/>
    <numa>
      <cell cpus='0-2' memory='6291456'/>
      <cell cpus='3' memory='2097152'/>
    </numa>
  </cpu>

Note that the memory for each cell is 6144*1024 and 2048*1024 respectively. The issue is that the memory size for each NUMA cell should be specified in KiB, not MB (http://libvirt.org/formatdomain.html#resPartition "memory specifies the node memory in kibibyte").

In short, it seems that specifying NUMA cell memory in MB works on x86_64 but not on ppc64. Does anyone have any insight to what's causing this, or if I'm misunderstanding something? Any help is appreciated, thank you!

Regards,
Mike Turek