On Wed, Jul 11, 2018 at 10:09:01AM +0200, Michal Privoznik wrote: > On 07/11/2018 09:58 AM, Erik Skultety wrote: > > On Tue, Jul 10, 2018 at 01:39:03PM +0200, Michal Privoznik wrote: > >> On 07/09/2018 06:24 PM, Erik Skultety wrote: > >>> QEMU 2.12 introduced a new type of display for mediated devices using > >>> vfio-pci backend which allows a mediated device to be used as a VGA > >>> compatible device as an alternative to an emulated video device. QEMU > >>> exposes this feature via a vfio device property 'display' with supported > >>> values 'on/off/auto' (default is 'off'). > >>> > >>> This patch adds the necessary bits to domain config handling in order to > >>> expose this feature. Since there's no convenient way for libvirt to come > >>> up with usable defaults for the display setting, simply because libvirt > >>> is not able to figure out which of the display implementations - dma-buf > >>> which requires OpenGL support vs vfio regions which doesn't need OpenGL > >>> (works with OpenGL enabled too) - the underlying mdev uses. > >>> > >>> Signed-off-by: Erik Skultety <eskultet@xxxxxxxxxx> > >>> --- > > ... > > > >>> +static int > >>> +qemuDomainHostdevDefPostParse(const virDomainHostdevDef *hostdev, > >>> + const virDomainDef *def) > >>> +{ > >>> + const virDomainHostdevSubsysMediatedDev *mdevsrc; > >>> + > >>> + if (hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS) { > >>> + switch ((virDomainHostdevSubsysType) hostdev->source.subsys.type) { > >>> + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: > >>> + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: > >>> + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI: > >>> + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI_HOST: > >>> + break; > >>> + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV: > >>> + mdevsrc = &hostdev->source.subsys.u.mdev; > >>> + return qemuDomainHostdevMdevDefPostParse(mdevsrc, def); > >>> + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST: > >>> + default: > >>> + virReportEnumRangeError(virDomainHostdevSubsysType, > >>> + hostdev->source.subsys.type); > >>> + return -1; > >>> + } > >>> + } > >>> + > >>> + return 0; > >>> +} > >>> + > >> > >> Again, these two ^^ are validate callbacks not PostParse. You are not > >> filling in missing information, you are checking (=validating) whether > >> user provided XML is valid. > > > > Actually, both of them were, back in the RFC series I linked (I completely > > agree with you) but I was asked to convert them to post parse so that xml2xml > > test could fail for invalid XMLs. Let me know whether I should convert them > > back. > > Asked by whom? Here you go https://www.redhat.com/archives/libvir-list/2018-June/msg00285.html. Revisiting it back I believe it was a combination of a small misunderstanding and my lazy thinking, so yep, I reverted the change back to being a validation callback and moved the *-missing-graphics* test into patch 7 where it's actually used. Erik -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list