On Wed, Feb 22, 2017 at 10:04:08AM +0100, Peter Krempa wrote:
On Tue, Feb 21, 2017 at 15:36:23 +0000, Daniel Berrange wrote:
> On Tue, Feb 21, 2017 at 04:22:05PM +0100, Peter Krempa wrote:
> > Memory-less numa nodes could be specified by setting the memory size to
> > 0. Allow ommiting of the parameter completely to specify the same.
> >
> > Partially resolves:
https://bugzilla.redhat.com/show_bug.cgi?id=1217144
>
> Does this correctly plumb through to the guest OS ?
>
> Last time we tried fixing this bug we found some problems - I can't remember
> whether the problem was with 0 CPUs or 0 memory, but with one of them, QEMU
> would totally mangle the NUMA topology, merging nodes together.
I tried it and indeed the NUMA topology for a memory-less node shows up
totally broken in the guest. From your comments on the linked bugzilla
I thought that it worked properly if you specify memory='0' explicitly.
Since cpu-less nodes are possible for a long time and with the new
cpu-hotplug API you can select individual vcpus to hotplug according to
the id I was under the impression that only the syntax-sugar stuff was
necessary to cover everyting.
So, IIRC, there were bugs in both QEMU and Linux in this respect. eg QEMU
mangles the topology it builds but even if QEMU built it right, than
Linux mangled it again.
What I'm unclear on though is whether the Linux behaviour is just an
accidental bug because no one has tried this before, or whether it is a
fundamental limitation of x86 architecture in Linux.
Second, even if it is broken on x86 on Linux, this config might work on
non-x86 archs with NUMA. If we can get clarity on this from the kernel
side, then we can decide if we need to fix QEMU or not.
Regards,
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://entangle-photo.org -o-
http://search.cpan.org/~danberr/ :|