On Sun, 2019-01-13 at 18:12 -0500, Cole Robinson wrote: [...] > @@ -5431,6 +5436,16 @@ virDomainDiskDefValidate(const virDomainDiskDef *disk) > return -1; > } > > + if (disk->bus != VIR_DOMAIN_DISK_BUS_VIRTIO && > + (disk->model == VIR_DOMAIN_DISK_MODEL_VIRTIO_TRANSITIONAL || > + disk->model == VIR_DOMAIN_DISK_MODEL_VIRTIO_NON_TRANSITIONAL)) { > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, > + _("disk model '%s' only supported for bus '%s'"), > + virDomainDiskModelTypeToString(disk->model), > + virDomainDiskBusTypeToString(disk->bus)); s/only supported/not supported/ I also wonder if more thorough validation would be a good idea: this only ensures that VIR_DOMAIN_DISK_MODEL_VIRTIO_* can't be used with other bus types, but if later on we add more VIR_DOMAIN_DISK_MODEL_* we won't be protected against those being use with VIR_DOMAIN_DISK_BUS_VIRTIO... [...] > +typedef enum { > + VIR_DOMAIN_DISK_MODEL_DEFAULT = 0, > + VIR_DOMAIN_DISK_MODEL_VIRTIO_TRANSITIONAL, > + VIR_DOMAIN_DISK_MODEL_VIRTIO_NON_TRANSITIONAL, > + > + VIR_DOMAIN_DISK_MODEL_LAST > +} virDomainDiskModel; I think we want to have VIR_DOMAIN_DISK_MODEL_VIRTIO as well, for consistency's sake if nothing else. For all other devices, model='virtio' will be (or already is) a perfectly valid configuration, so not accepting it for disks would violate the principle of least surprise. [...] > +++ b/tests/qemuxml2argvdata/virtio-non-transitional.xml > @@ -0,0 +1,26 @@ > +<domain type='qemu'> > + <name>QEMUGuest1</name> > + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> > + <memory unit='KiB'>219136</memory> > + <currentMemory unit='KiB'>219136</currentMemory> > + <vcpu placement='static'>1</vcpu> > + <os> > + <type arch='x86_64' machine='q35'>hvm</type> > + <boot dev='hd'/> > + </os> > + <clock offset='utc'/> > + <on_poweroff>destroy</on_poweroff> > + <on_reboot>restart</on_reboot> > + <on_crash>destroy</on_crash> > + <devices> > + <disk type='block' device='disk' model='virtio-non-transitional'> > + <driver name='qemu' type='raw'/> > + <source dev='/dev/HostVG/QEMUGuest1'/> > + <target dev='vda' bus='virtio'/> > + </disk> > + <controller type='usb' index='0' model='none'/> > + <input type='mouse' bus='ps2'/> > + <input type='keyboard' bus='ps2'/> > + <memballoon model='none'/> > + </devices> > +</domain> You can strip this file further by removing the <currentMemory>, <os><boot>, <clock>, <on_*> and <input> elements at least. -- Andrea Bolognani / Red Hat / Virtualization -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list