[libvirt] [PATCH 11/22] qemu: Implement virConnectCompareHypervisorCPU
Jiri Denemark
jdenemar at redhat.com
Mon May 28 12:18:18 UTC 2018
On Fri, May 25, 2018 at 13:50:19 -0400, Collin Walling wrote:
> Sorry for the delay. I've been experiencing issues with the mail server :(
>
> On 05/16/2018 04:39 AM, Jiri Denemark wrote:
> > Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
> > ---
> > src/qemu/qemu_driver.c | 60 ++++++++++++++++++++++++++++++++++++++++++
> > 1 file changed, 60 insertions(+)
> >
> > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> > index 6c086b9ef8..4b48afdad1 100644
> > --- a/src/qemu/qemu_driver.c
> > +++ b/src/qemu/qemu_driver.c
> > @@ -13100,6 +13100,65 @@ qemuConnectCompareCPU(virConnectPtr conn,
> > }
> >
> >
> > +static int
> > +qemuConnectCompareHypervisorCPU(virConnectPtr conn,
> > + const char *emulator,
> > + const char *archStr,
> > + const char *machine,
> > + const char *virttypeStr,
> > + const char *xmlCPU,
> > + unsigned int flags)
> > +{
> > + int ret = VIR_CPU_COMPARE_ERROR;
> > + virQEMUDriverPtr driver = conn->privateData;
> > + virQEMUCapsPtr qemuCaps = NULL;
> > + bool failIncompatible;
> > + virCPUDefPtr hvCPU;
> > + virArch arch;
> > + virDomainVirtType virttype;
> > +
> > + virCheckFlags(VIR_CONNECT_COMPARE_CPU_FAIL_INCOMPATIBLE,
> > + VIR_CPU_COMPARE_ERROR);
> > +
> > + if (virConnectCompareHypervisorCPUEnsureACL(conn) < 0)
> > + goto cleanup;
> > +
> > + failIncompatible = !!(flags & VIR_CONNECT_COMPARE_CPU_FAIL_INCOMPATIBLE);
> > +
> > + qemuCaps = virQEMUCapsCacheLookupDefault(driver->qemuCapsCache,
> > + emulator,
> > + archStr,
> > + virttypeStr,
> > + machine,
> > + &arch, &virttype, NULL);
> > + if (!qemuCaps)
> > + goto cleanup;
> > +
> > + hvCPU = virQEMUCapsGetHostModel(qemuCaps, virttype,
> > + VIR_QEMU_CAPS_HOST_CPU_REPORTED);
>
> nit: add a blank line here
>
> > + if (!hvCPU || hvCPU->fallback != VIR_CPU_FALLBACK_FORBID) {
> > + virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
> > + _("QEMU '%s' does not support reporting CPU model for "
> > + "virttype '%s'"),
> > + virQEMUCapsGetBinary(qemuCaps),
> > + virDomainVirtTypeToString(virttype));
> > + goto cleanup;
> > + }
> > +
> > + if (ARCH_IS_X86(arch)) {
> > + ret = virCPUCompareXML(arch, hvCPU, xmlCPU, failIncompatible);
> > + } else {
> > + virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
> > + _("comparing hypervisor CPUs is not supported for "
> > + "arch %s"), virArchToString(arch));
>
> At first glance, this message makes me think that this function is for "comparing two hypervisor CPUs".
> Perhaps the message should say "comparing with the hypervisor CPU is not supported for arch %s" instead?
> I think that makes it more clear that the other CPU in question is not (necessarily) a hypervisor CPU.
Yeah, that's definitely better.
Jirka
More information about the libvir-list
mailing list