On Tue, Nov 08, 2016 at 03:02:31PM +0100, Pavel Hrdina wrote: > On Wed, Nov 02, 2016 at 10:22:33AM +0100, Jiri Denemark wrote: > > CPU related capabilities may differ depending on accelerator used when > > probing. Let's use KVM if available and fall back to TCG. > > > > Signed-off-by: Jiri Denemark <jdenemar@xxxxxxxxxx> > > --- > > > > Notes: > > Or should we perhaps start probing QEMU in both TCG and KVM > > mode since some capabilities may actually differ depending on > > the accelerator? Probing QEMU twice for both TCG and KVM would > > be cleaner and we could real capabilities for both QEMU and KVM > > domain types. And the two ugly patches at the end of this series > > would not be needed anymore. However running QEMU twice was > > always considered harmful, which is why I came up with this a bit > > ugly solution. > > As we've discussed this outside of mailing list, QEMU is planing to rewrite the > way how they initialize itself and we will be able to probe TCG and KVM > differences no matter what accel was used to start the QEMU process. This means > that we will have to store the difference somehow for both TCG and KVM. > > As you've mentioned it would be cleaner solution to have both capabilities > available so I would say that we should go for it. To reduce the impact of > probing twice (until QEMU rewrites the probing) we can probe only once for > the best capabilities (KVM if available otherwise for TCG) and probe for the > second one only when it is explicitly required by some guest. In most cases > during libvirtd lifetime there are only KVM or TCG guests. > > Note: adding Dan to CC for his opinion. NB, the reason we don't want to run each QEMU binary more than once to probe features is that it quickly becomes non-scalable due to combinatorial expansion. We already have 28 system emulators, and so running QEMU twice would mean 56 invokations, three times gives 84 invokations, etc. KVM is a little bit special though. Out of those 28 binaries, at most 2 of them can be run in KVM mode - eg on x86_64 host, only the x86_64 and i686 system emulators can run KVM - all the others are 100% TCG based. So in the very special case of KVM, I think it is acceptable to run QEMU twice, as this is not creating a combinatorial expansion in number of emulators we must invoke - it adds at most 2 extra invokations. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://entangle-photo.org -o- http://search.cpan.org/~danberr/ :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list