On Fri, 2016-03-04 at 10:52 +0800, Peter Xu wrote: > > Sorry for not catching this earlier, but I'm afraid this is not > > going to work -- libvirt doesn't pass either -enable-kvm or the > > machine option accel=kvm when probing for capabilities, which > > means that, with the current implementation, it will only get > > information about emulated GIC. > > > > Is there a way to make probing work without requiring KVM to > > be enabled? > Ah.. If so, this is a good point... > > I can do this, but I just feel it a bit hacky if I do ioctl()s > directly in one QMP command handle: > > qmp_query_gic_capability() > { > kvm = open("/dev/kvm"); > vm = ioctl(KVM_CREATE_VM); > > ...test create devices using KVM_CREATE_DEVICE ioctls... > > close(vm); > close(kvm); > } > > Rather than leveraging current KVMState stuffs (of course, I can > make things a little bit prettier than above...). > > Another way to do is to generalize kvm_init() maybe? That's some > work too. > > Andrea, do you know how much effort we need to add this support for > libvirt, say, we can specify "accel=" or "-enable-kvm" as extra > parameter when probing?
I'm afraid this is not going to be possible for the same reason we have to use '-M none' when probing: at that point in time, we simply have no idea what the guests will look like. Actually, it's the other way around, in that the result of probing (host and domain capabilities) will influence the guest configuration created by the user / management tool. And we definitely can't use 'accel=kvm' unconditionally, because then we won't be able to probe eg. the qemu-system-aarch64 binary installed on a x86_64 host. Cheers. -- Andrea Bolognani Software Engineer - Virtualization Team