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

Yi Wang wang.yi59 at zte.com.cn
Tue Feb 26 02:01:28 UTC 2019

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>

The reason is vcpu[3] and vcpu[4] have zero tids and should not been
compared as valid situation in qemuDomainRefreshVcpuInfo().

This issue is introduced by commit 34f7743, which fix recording of vCPU
pids for MTTCG.

Signed-off-by: Yi Wang <wang.yi59 at zte.com.cn>
v2: stop considering zero TIDs as duplicate. Thanks to Jano.
 src/qemu/qemu_domain.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index ac01e86..c70d3f3 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -10708,7 +10708,7 @@ qemuDomainRefreshVcpuInfo(virQEMUDriverPtr driver,
         for (j = 0; j < i; j++) {
-            if (info[i].tid == info[j].tid) {
+            if (0 != info[i].tid && info[i].tid == info[j].tid) {
                 VIR_DEBUG("vCPU[%zu] PID %llu duplicates vCPU[%zu]",
                           i, (unsigned long long)info[i].tid, j);
                 validTIDs = false;

More information about the libvir-list mailing list