[adding libvirt] On 11/13/2013 10:01 PM, Alexey Kardashevskiy wrote: > Hi everyone. > > Here is a problem with the SPAPR machine and a libvirt's habit to use > "-nodefaults". > > When we run QEMU with "-vga std", a VGA device is created from the > machine_init callback and if VGA is added, then we automatically add a PCI > USB OHCI adapter with a keyboard and everybody (SLOF, yaboot, guest kernel) > is happy - there are both input and output devices. > > However libvirt uses "-device VGA" to create a VGA device. In this case the > actual VGA device is created in vl.c and we (SPAPR) do not have control > over this process so we do not automatically create anything in addition to > VGA. As a result, yaboot fails as there is no input device. > > x86 creates a whole bunch of various devices including a keyboard > controller (i8042) even with "-nodefaults" but this is not true for SPAPR. Then libvirt needs to be taught to provide the same devices via -device that would be present during -vga. > > Since we (POWERPC folks) want everything to work as close to x86 as > possible, we need to do something about it :) Hmm, but adding automatic devices in a future qemu release compared to what you do now could be a regression - once libvirt is taught how to provide the correct devices for the qemu that exists now, wouldn't that mean that your automatic device adding creates duplicates? Libvirt uses -nodefaults for a reason - we really don't like automatic devices (especially when the set of WHAT is automatic is prone to change between qemu builds), and would much rather call out everything explicitly so that we can guarantee guest ABI stability across qemu upgrades. > > So the question is - is there any proper (i. e. qemu-upstreamable) way to > detect a VGA device presence and create additional devices (OHCI, keyboard, > mouse) as "-vga" does it now? The machine reset callback is too late for that. > > Or we should just print an error (in QEMU or SLOF) and do nothing and let > the user configure all required devices in libvirt? I'm in favor of printing an error if not enough devices were supplied, and fixing libvirt to supply the correct devices when it doesn't use -vga. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list