
On Mon, Feb 15, 2016 at 10:35:39AM +0100, Martin Kletzander wrote:
On Sun, Feb 14, 2016 at 01:41:41PM +0800, Peter Xu wrote:
["gicv2", "gicv2-kvm", "gicv3-kvm"]
Please help review whether the interface suits our need, also please point out any error I have made.
This looks nice. I have some questions, but I'm not an expert in this area, so excuse me if they are stupid.
So hardware itself supports some GIC version, let's say 3 for our case. Does that mean it can be triggered to do v2 as well? I mean is it possible that HW supports multiple versions? If yes, then I suspect there is (will be) HW that does *not* do it and that's where QEMU (or KVM) must emulate that version. If all I'm having in mind is true, then you are trying to reply with two orthogonal types of information. A) versions kernel/HW supports and B) qemu/kvm can emulate. That is fine if libvirt can choose all the versions specified (e.g. gicv2-kvm, gicv2), but if we can only select a version, then it might be worth just returning those two types of information separately, e.g.:
["v2": {"emulated": true, "kvm":true}, "v3": {"emulated": false, "kvm": true}]
Yes, I'd say that this is more clear especially when the matrix is very big. Luckily for GIC versions, there is only 2x2 (2x3 if there is v4) and it keeps a small one. So IMHO this is a flavor issue and both work for me. :) Thanks. Peter