On Thu, Feb 18, 2016 at 06:10:21PM +0100, Andrea Bolognani wrote:
On Thu, 2016-02-18 at 17:52 +0100, Andrew Jones wrote:
> > Is this work on any of our todo list (or anyone has started the
> > prototyping)?
> >
> > It seems reasonable to provide such a generic interface, rather than
> > adding a "query-gic-capability" for GIC versions only. The problem
> > is that, I am not sure how eagerly we are wanting this GIC
> > interface, and when will this framework be there in QOM.
>
> We want it eagerly :-) This type of a rabbit hole is likely why Daniel
> was suggesting we do more in libvirt. I'm still not sure we want to
> probe both kvm and qemu from libvirt though, so I'm still in favor of
> an improved qemu probing method being worked out.
>
> I don't know what the policy is for deprecating QMP commands, but I
> wonder if we can't introduce a QMP command now, and then, after working
> out the QOM extensions, we could shift to it, deprecating this QMP
> command and any others that would no longer be needed.
AFAIK, the current situation of libvirt passing the GIC version to
QEMU and simply reporting in case of failure is not unprecedented
and there are a few cases where probing in advance would simply not
be feasible.
Any probing code added to libvirt would have to be kept around
forever to ensure compatibility with current QEMU versions, so it
should IMHO be seen as a last resort in case we can't live without
GIC version probing while it's being implemented, properly, in QEMU.
If libvirt is the most possible consumer for the new command, I
think it might not be too hard to keep the compatibility of all
possible versions of QEMU. E.g., after we have got a better way to
query GIC version other than query-gic-capability, we can do
something like this in libvirt:
- try query-gic-capability
- if supported -> [got GIC version]
- if not supported -> try the new method
- if supported -> [got GIC version]
- if not supported -> [not support]
During the time when QEMU has both methods working (before
obsoleting the query-gic-capability QMP command), QEMU will make
sure querying in both way will get exactly the same results.
Does this work?
Thanks.
Peter