[libvirt] [PATCH 33/34] qemu: driver: Refactor qemuDomainHelperGetVcpus

Peter Krempa pkrempa at redhat.com
Fri Nov 27 09:11:40 UTC 2015


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20151127/a8d13460/attachment-0001.sig>


More information about the libvir-list mailing list