On Tue, 2016-02-16 at 12:38 +0000, Daniel P. Berrange wrote:
> > > Regardless of the way it is exposed in libvirt API, when libvirt probes
> > > for capabilities it will *always* use '-m none'.
> > 
> > Domain capabilities are currently derived almost entirely from data
> > taken from virQEMUCaps, but is there anything stopping us from
> > calling QEMU with the appropriate machine type from
> > qemuConnectGetDomainCapabilities() to query for machine type
> > dependent domain capabilities such as supported values for the
> > gic-version property?
> 
> The cost of invoking QEMU for each architecture and probing capabilities
> is already higher than we would like. If we multiply that cost by the
> number of machine types, it makes the problem orders of magnitude worse,
> so we cannot go that route.
> 
> This is a key reason why we would like to be able to probe properties
> against QEMU classses without instantiating them. ie so we can launch
> QEMU once with "-m none" and still be able to query specific properties
> we want from the 'virt' machine type. A small step towards this was
> made with a patch we landed to let us register properties against
> classes in QOM, instead of against objects. We've not done work to
> convert code internally to use this facility yet though.

So, until such support lands in QEMU, is there really anything we
can do in libvirt beside passing through whatever value the user
has specified in the domain XML and report QEMU's error on failure?

I had underestimated the performance implications of spawning more
QEMU processes, thanks for highlighting them.

Cheers.

-- 
Andrea Bolognani
Software Engineer - Virtualization Team

Reply via email to