Re: [PATCH v5 11/12] qemu: Validate PCI controllers (QEMU capabilities)

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

 



On Fri, 2018-03-02 at 18:44 -0500, Laine Stump wrote:
[...]
> > +static int
> > +virDomainControllerPCIModelNameToQEMUCaps(int modelName)
> > +{
> > +    switch ((virDomainControllerPCIModelName) modelName) {
> > +    case VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME_PCI_BRIDGE:
> > +        return QEMU_CAPS_DEVICE_PCI_BRIDGE;
> > +    case VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME_I82801B11_BRIDGE:
> > +        return QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE;
> > +    case VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME_IOH3420:
> > +        return QEMU_CAPS_DEVICE_IOH3420;
> > +    case VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME_X3130_UPSTREAM:
> > +        return QEMU_CAPS_DEVICE_X3130_UPSTREAM;
> > +    case VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME_XIO3130_DOWNSTREAM:
> > +        return QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM;
> > +    case VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME_PXB:
> > +        return QEMU_CAPS_DEVICE_PXB;
> > +    case VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME_PXB_PCIE:
> > +        return QEMU_CAPS_DEVICE_PXB_PCIE;
> > +    case VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME_PCIE_ROOT_PORT:
> > +        return QEMU_CAPS_DEVICE_PCIE_ROOT_PORT;
> > +    case VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME_SPAPR_PCI_HOST_BRIDGE:
> > +        return QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE;
> > +    case VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME_NONE:
> > +        return 0;
> > +    case VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME_LAST:
> > +    default:
> > +        return 1;
> 
> What's the deal with "1"?

Should have been -1, of course :)

[...]
> > +    /* The default PHB for pSeries guests doesn't need any QEMU capability
> > +     * to be used, so we should skip the capabilities check altogether */
> 
> ... and the check would fail if we didn't skip?

Correct: virDomainControllerPCIModelNameToQEMUCaps() would return
QEMU_CAPS_DEVICE_SPAPR_PCI_HOST_BRIDGE, and the check below would
fail.

I'm actually fairly confident we could drop that hunk with no ill
effect, because the spapr-pci-host-bridge must have existed even
before we started checking for it, even if it might possibly have
been, at some point, not user-instantiable; however, the
capabilities data for ppc64 in our test suite doesn't go far back
enough to prove this is the case, so special-casing it seems like
the safest option.

I'll try to see if I can build QEMU 1.2.0 (that's the earliest we
claim support for, right?) on ppc64 with a reasonable amount of
work, and if my hunch is correct I'll post a follow-up cleanup
patch that gets rid of it.

-- 
Andrea Bolognani / Red Hat / Virtualization

--
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