On Wed, Sep 09, 2015 at 10:17:34AM +0200, Andrea Bolognani wrote: > On Tue, 2015-09-08 at 16:47 +0100, Daniel P. Berrange wrote: > > > Or we could just query everything that looks like a QEMU > > > binary and then lookup the correct one for the guest based > > > on the query results, couldn't we? Again, assuming such > > > interface even exists. > > > > I'd prefer libvirt to not have a trawl through every QEMU > > binary to do this really. > > AFAIK we're already querying every binary for other stuff > we're interested in, so adding one more query shouldn't > change anything. Or am I missing something?
In all the other cases we already know which binary we need to query. We happen to cache the results of querying binaries we find in $PATH, but none of our code has a fixed assumption that we have caps available for every single binary. I don't want such an assumption to get baked into libvirt code, because it will limit our flexibility to change the way we probe / cache capabilities data later, if we have a requirement to always query every binary upfront. > > > I'm not sure they're covering all possible combinations, > > > though. Which is why it would be really nice to be able to > > > ask this stuff to QEMU itself. > > > > So, I think what we need do is to just refactor the > > virQEMUCapsFindBinaryForArch(), to pull out the > > architecture canonocalization out into a separate > > method eg virArch virQEMUCapsCanonicalSystemArch(virArch) > > and then just call it from both places > > Sounds reasonable. Are we sure we have a complete > understanding of the relationship between targets and > architectures, though? For example, I don't see anything > about s390, and the ARM stuff doesn't look like it covers > everything. I just want to make sure we're not doing > anything wrong or missing any possible combination. Yeah, we've just added exceptions on an as-nedeed basis, so we could well need more special cases added Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|