
On Tue, Nov 24, 2015 at 07:56:19 -0500, John Ferlan wrote:
On 11/20/2015 10:22 AM, Peter Krempa wrote:
Change some of the control structures and switch to using the new vcpu structure. --- src/qemu/qemu_driver.c | 77 ++++++++++++++++++++++++++++---------------------- 1 file changed, 43 insertions(+), 34 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index c659328..b9f8e72 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c
[...]
+ + if (cpumaps) + memset(cpumaps, 0, sizeof(*cpumaps) * maxinfo); + + for (i = 0; i < virDomainDefGetVCpusMax(vm->def) && ncpuinfo < maxinfo; i++) {
This line is longer than 80 cols.
+ virDomainVCpuInfoPtr vcpu = virDomainDefGetVCpu(vm->def, i); + pid_t vcpupid = qemuDomainGetVCpuPid(vm, i); + + if (!vcpu->online) + continue;
So if the goal is to eventually allow vcpu 0 & 2 of 4 vcpu's to be online, then this algorithm will need a slight adjustment.
Yes that's the goal.
Of course there's also the what if 'vcpupid == 0' that hasn't been checked here (comments from patch 32).
I "believe" what needs to be done is change the [i] below to [ncpuinfo] - that way the info & cpumaps would be returned with only the ONLINE/RUNNING vCPU's and 'info[]' won't have gaps which won't be accessible if a "2" is returned... I think the same holds true for the VIR_GET_CPUMAP
Oh, yeah. I forgot to fix that when trying multiple approaches