
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