[libvirt] [PATCH] qemu: fix vcpupin fail as no vcpu tid set

Wen Yang wen.yang99 at zte.com.cn
Mon Feb 18 09:21:31 UTC 2019

From: Yi Wang <wang.yi59 at zte.com.cn>

vcpupin will fail when maxvcpus is larger than current

virsh vcpupin win7 --vcpu 0 --cpulist 5-6
error: Requested operation is not valid: cpu affinity is not supported

win7 xml in the command above is like below:
<vcpu current="3" placement="static">8</vcpu>

This issue is caused by qemuDomainRefreshVcpuInfo(), which mistake to
make validTIDs false and not set vcpu tid because vcpu[3] and vcpu[4]
have duplicate zero tids.

This patch fix this.

Signed-off-by: Yi Wang <wang.yi59 at zte.com.cn>
 src/qemu/qemu_domain.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index ac01e86..6987550 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -10701,6 +10701,9 @@ qemuDomainRefreshVcpuInfo(virQEMUDriverPtr driver,
      * impl which we can support.
     for (i = 0; i < maxvcpus && validTIDs; i++) {
+        if (vm->def->virtType != VIR_DOMAIN_VIRT_QEMU)
+            break;
         if (info[i].tid == vm->pid) {
             VIR_DEBUG("vCPU[%zu] PID %llu duplicates process",
                       i, (unsigned long long)info[i].tid);

More information about the libvir-list mailing list