On Tue, Aug 04, 2015 at 09:27:13PM -0400, John Ferlan wrote:
$SUBJ s/pining/pinning Or perhaps - "qemu: Use numad information when getting pin information""
OK, I won't mention anything pine-cone-related then ;)
On 07/26/2015 12:57 PM, Martin Kletzander wrote:Pinning information returned for emulatorpin and vcpupin calls is being returned from our data without querying cgroups for some time. However, not all the data were utilized. When automatic placement is used the information is not returned for the calls mentioned above. Since the numad hint in private data is properly saved/restored, we can safely use it to return true information. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1162947 Signed-off-by: Martin Kletzander <mkletzan@xxxxxxxxxx> --- src/qemu/qemu_driver.c | 11 +++++++++++ 1 file changed, 11 insertions(+)Should qemuDomainGetIOThreadsConfig be adjusted as well? In the for loop that's fetching/filling in the iothreadid there's a filling of the cpumask as well.
From the name I think that rather qemuDomainGetIOThreadsLive() should be adjusted, not Config(), unless I misunderstood what they do.
Patches seem reasonable otherwise, although patch2 could have a wee bit more information in the commit log to explain what's being done...
OK, I'll add some info in there.
Beyond that does that value matter if placement_mode != VIR_DOMAIN_CPU_PLACEMENT_MODE_AUTO? or if !virDomainDefNeedsPlacementAdvice (from qemuProcessStart)? Was checking where it was set and if it's set to something reasonable...
No it doesn't. Is there a problem with that? I haven't found any.
Johndiff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 40c882c4ba88..1e090bb5c36b 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -5224,6 +5224,7 @@ qemuDomainGetVcpuPinInfo(virDomainPtr dom, int ret = -1; int hostcpus, vcpu; virBitmapPtr allcpumap = NULL; + qemuDomainObjPrivatePtr priv = NULL; virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); @@ -5244,6 +5245,7 @@ qemuDomainGetVcpuPinInfo(virDomainPtr dom, goto cleanup; virBitmapSetAll(allcpumap); + priv = vm->privateData; /* Clamp to actual number of vcpus */ if (ncpumaps > def->vcpus) @@ -5262,6 +5264,9 @@ qemuDomainGetVcpuPinInfo(virDomainPtr dom, if (pininfo && pininfo->cpumask) bitmap = pininfo->cpumask; + else if (vm->def->placement_mode == VIR_DOMAIN_CPU_PLACEMENT_MODE_AUTO && + priv->autoCpuset) + bitmap = priv->autoCpuset; else bitmap = allcpumap; @@ -5412,6 +5417,7 @@ qemuDomainGetEmulatorPinInfo(virDomainPtr dom, int hostcpus; virBitmapPtr cpumask = NULL; virBitmapPtr bitmap = NULL; + qemuDomainObjPrivatePtr priv = NULL; virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); @@ -5428,10 +5434,15 @@ qemuDomainGetEmulatorPinInfo(virDomainPtr dom, if ((hostcpus = nodeGetCPUCount(NULL)) < 0) goto cleanup; + priv = vm->privateData; + if (def->cputune.emulatorpin) { cpumask = def->cputune.emulatorpin; } else if (def->cpumask) { cpumask = def->cpumask; + } else if (vm->def->placement_mode == VIR_DOMAIN_CPU_PLACEMENT_MODE_AUTO && + priv->autoCpuset) { + cpumask = priv->autoCpuset; } else { if (!(bitmap = virBitmapNew(hostcpus))) goto cleanup;
Attachment:
signature.asc
Description: PGP signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list