
vcpuinfo returns a wrong value for kvm with libvirt 0.6.2: virsh # nodeinfo CPU-Modell: x86_64 CPU(s): 2 CPU-Frequenz: 2333 MHz CPU-Socket(s): 1 Kern(e) pro Socket: 2 Thread(s) pro Kern: 1 NUMA-Zelle(n): 1 Speichergrösse: 3062956 kB virsh # dominfo rr019v3 Id: 2 Name: rr019v3 UUID: ff1ba599-5801-fca9-ab33-8962c2dfa46c OS Typ: hvm Status: laufend CPU(s): 2 CPU-Zeit: 46,5s Max Speicher: 1572864 kB Verwendeter Speicher: 1572864 kB Automatischer Start: deaktiviert As default a kvm-vm has a affinity on all cpus provided by the node virsh # vcpuinfo rr019v3 VCPU: 0 CPU: 0 Status: laufend CPU-Affinität: yy VCPU: 1 CPU: 0 Status: laufend CPU-Affinität: yy When i set the affinity of the vCPUs to dedicated CPUs of the node vcpuinfo returns CPU 0 as the assigned CPU. virsh # vcpupin rr019v3 0 0 virsh # vcpupin rr019v3 1 1 virsh # vcpuinfo rr019v3 VCPU: 0 CPU: 0 Status: laufend CPU-Affinität: y- VCPU: 1 CPU: 0 Status: laufend CPU-Affinität: -y Furthermore even when pinning all - in my case both - vCPUs of the domain to the second CPU of the node virsh reports the first cpu as the assigned cpu. virsh # vcpupin rr019v3 0 1 virsh # vcpuinfo rr019v3 VCPU: 0 CPU: 0 Status: laufend CPU-Affinität: -y VCPU: 1 CPU: 0 Status: laufend CPU-Affinität: -y Watching at the code in virsh.c i am a little bit on my wits end where virVcpuInfoPtr is defined as i am no c-programmer - only some java on my side. On my xen-machine with libvirt 0.3.3 the CPU is shown correctly though: virsh vcpuinfo rr010v2 VCPU: 0 CPU: 0 Status: blockiert CPU-Zeit: 550,4s CPU-Affinität: y--- VCPU: 1 CPU: 1 Status: blockiert CPU-Zeit: 27,9s CPU-Affinität: -y-- VCPU: 2 CPU: 2 Status: blockiert CPU-Zeit: 31,2s CPU-Affinität: --y- VCPU: 3 CPU: 3 Status: blockiert CPU-Zeit: 49,1s CPU-Affinität: ---y Is this only working with the xen-driver?