From: Yi Wang <wang.y...@zte.com.cn>

vcpupin will fail when maxvcpus is larger than current
vcpu:

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.y...@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);
-- 
1.8.3.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to