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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 18, 2019 at 05:21:31PM +0800, Wen Yang wrote:
From: Yi Wang <wang.yi59@xxxxxxxxxx>

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 problem description does not match the attempted fix.


This patch fix this.

Signed-off-by: Yi Wang <wang.yi59@xxxxxxxxxx>
---
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;
+

This for loop was introduced by:
commit 34f77437da884f9cf0e2450f25f373b17cf527e2
   qemu: fix recording of vCPU pids for MTTCG

which started recording TIDs for TCG as well.
Skipping it for VIRT_QEMU reverts the benefits for multithreaded TCG,
while leaving the loop broken for VIRT_KVM when not all vCPUs are
enabled.

The proper fix here would be to stop considering zero TIDs as duplicate.

Jano

        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@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

Attachment: signature.asc
Description: PGP signature

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

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux