[libvirt] [PATCH v2 RESEND 09/12] qemu: Generate and use zPCI device in QEMU command line

Andrea Bolognani abologna at redhat.com
Tue Jul 24 15:09:17 UTC 2018


On Tue, 2018-07-10 at 16:02 +0800, Yi Min Zhao wrote:
[...]
> +bool
> +qemuCheckDeviceIsZPCI(virDomainDeviceInfoPtr info)
> +{
> +    if (info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI &&
> +        ((info->pciAddressExtFlags & VIR_PCI_ADDRESS_EXTENSION_ZPCI) ||
> +         info->addr.pci.zpci))
> +        return true;

Missing curly braces.

Also, do you really need to check both the flags and the presence
of the zPCI address bits? It looks like either one or the other
should be enough or, if that's not the case, it should be made so
because having to check for two separate conditions makes me feel
like it would introduce bugs in the long run.

[...]
> +char *qemuBuildZPCIDevStr(virDomainDeviceInfoPtr dev);
> +
> +bool qemuCheckDeviceIsZPCI(virDomainDeviceInfoPtr info);

Is this really necessary? Can't these two functions be static?

[...]
> --- a/tests/qemuxml2argvtest.c
> +++ b/tests/qemuxml2argvtest.c
> @@ -1014,6 +1014,8 @@ mymain(void)
>              QEMU_CAPS_CCW, QEMU_CAPS_VIRTIO_S390);
>      DO_TEST("disk-virtio-scsi-ccw", QEMU_CAPS_VIRTIO_SCSI,
>              QEMU_CAPS_CCW, QEMU_CAPS_VIRTIO_S390);
> +    DO_TEST("disk-virtio-s390-zpci", QEMU_CAPS_DEVICE_ZPCI,
> +            QEMU_CAPS_CCW, QEMU_CAPS_VIRTIO_S390);
>      DO_TEST("disk-order",
>              QEMU_CAPS_DRIVE_BOOT, QEMU_CAPS_VIRTIO_BLK_SCSI);
>      DO_TEST("disk-virtio-drive-queues",
> @@ -1574,6 +1576,18 @@ mymain(void)
>              QEMU_CAPS_DEVICE_VFIO_PCI);
>      DO_TEST_PARSE_ERROR("hostdev-mdev-invalid-target-address",
>              QEMU_CAPS_DEVICE_VFIO_PCI);
> +    DO_TEST("hostdev-vfio-zpci",
> +            QEMU_CAPS_DEVICE_VFIO_PCI, QEMU_CAPS_DEVICE_ZPCI);
> +    DO_TEST("hostdev-vfio-zpci-multidomain-many",
> +            QEMU_CAPS_DEVICE_VFIO_PCI, X_QEMU_CAPS_HOST_PCI_MULTIDOMAIN,

Capabilities with X_QEMU prefix are no longer used, so you should
not list them here.

> +            QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_ZPCI);
> +    DO_TEST("hostdev-vfio-zpci-autogenerate",
> +            QEMU_CAPS_DEVICE_VFIO_PCI, QEMU_CAPS_DEVICE_ZPCI);
> +    DO_TEST("hostdev-vfio-zpci-boundaries",
> +            QEMU_CAPS_DEVICE_VFIO_PCI, X_QEMU_CAPS_HOST_PCI_MULTIDOMAIN,
> +            QEMU_CAPS_DEVICE_PCI_BRIDGE, QEMU_CAPS_DEVICE_ZPCI);
> +    DO_TEST_FAILURE("hostdev-vfio-zpci",
> +                    QEMU_CAPS_DEVICE_VFIO_PCI);

Please add these to qemuxml2xmltest at the same time.

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list