On Wed, May 28, 2014 at 01:44:49PM +0200, Martin Kletzander wrote:
On Wed, May 28, 2014 at 11:29:40AM +0100, Daniel P. Berrange wrote:
>On Wed, May 28, 2014 at 11:48:36AM +0200, Martin Kletzander wrote:
>>diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
>>index 4818cfb..b77914e 100644
>>--- a/src/conf/domain_conf.c
>>+++ b/src/conf/domain_conf.c
>>@@ -17524,7 +17524,7 @@ virDomainDefFormatInternal(virDomainDefPtr def,
>> goto error;
>> }
>> virBufferAsprintf(buf,
>>- "<memnode nodeid='%zu'
mode='%s' nodeset='%s'/>\n",
>>+ "<memnode cellid='%zu'
mode='%s' nodeset='%s'/>\n",
>> i, mode, nodemask);
>> VIR_FREE(nodemask);
>> }
>
>Presumably this belongs in an earlier patch in the series.
>
Oh, yes :) the fixup was on the wrong line in interactive rebase.
>>diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c
>>index b1bfb5a..ce03a4f 100644
>>--- a/src/qemu/qemu_cgroup.c
>>+++ b/src/qemu/qemu_cgroup.c
>>@@ -588,6 +588,8 @@ qemuSetupCpusetCgroup(virDomainObjPtr vm,
>> if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_CPUSET))
>> return 0;
>>
>>+ /* ASDF: per-node pinnings are not reflected here */
>
>Are you refering to per-node vCPU pinnings here ?
>
>We already have a per-vCPU pin capability in both the XML and the
>cgroup setup code and the new <memnode> affinity mask you're adding
>presumably only applies to memory, not vCPUs, otherwise we'd be
>effectively having two places to set the same info.
>
What we are doing now is that we take the nodeset from <memory>, put
it into cpuset.mems and do virCgroupCpuSetInherit() for the underlying
cgroups in the hierarchy. What we should do is put the right nodeset
in each (related memnode or global memory, depending on which ones
were set), but *only* if there's mode='strict'. However, I'm not sure
how to properly handle both memory and memnode settings with different
modes (strict, prefer, interleave).
Oh, so you're thinking that you want to set the memory allocation
policy for the vCPU threads to match the <memnode> that the vCPU
is associated with.
I'm not convinced that is a good idea actually. IMHO <memnode>
should only affect the placement of the guest RAM block. I'd
class memory allocations done by the vCPU threads as being
part of the QEMU global memory pool, so I think I'd expect
them to be using <memory> settings not <memnode>.
Regards,
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 :|