On Mon, Dec 21, 2015 at 10:15:13AM +0000, Daniel P. Berrange wrote:
On Sun, Dec 20, 2015 at 04:49:20PM +0100, Kashyap Chamarthy wrote:
> On Tue, Dec 15, 2015 at 04:42:13PM +0000, Peter Maydell wrote:
> > On 15 December 2015 at 16:35, Andrew Jones <drjones(a)redhat.com> wrote:
> > > This is probably good for guests that happy with both. Guests that
> > > need/want a specific choice will put their integer there, and then
> > > we need a way to do a capabilities check before launching that guest
> > > on an arbitrary host.
> >
> > OK, so how do we typically do that? I notice I have a 'kvm-ok'
> > script on my machine which helpfully reports things like whether
> > KVM is enabled, and it seems like it might be helpful to extend
> > that to know a bit more about ARM hosts. But I'm guessing libvirt
> > doesn't use that for its capability checking ?
>
> libvirt ships a tool called `virt-host-validate` that performs a bunch
> of checks along with whether KVM is enabled or not in the BIOS:
>
> $ sudo virt-host-validate
> QEMU: Checking for hardware virtualization : PASS
> QEMU: Checking for device /dev/kvm : PASS
> QEMU: Checking for device /dev/vhost-net : PASS
> QEMU: Checking for device /dev/net/tun : PASS
> LXC: Checking for Linux >= 2.6.26 :
PASS
>
> The only ARM machine I have access to is an AArch64 one, running on it
> results in:
>
> $ sudo virt-host-validate
> QEMU: Checking for hardware virtualization :
WARN (Only emulated CPUs are available, performance will be significantly limited)
This check needs to be fixed to work on Arm hosts, or indeed any
non-x86 hosts. It currently checks for 'svm' and 'vmx' flags in
CPU.
So let me summarize the things we need to do:
- patch libvirt to allow <gic version='host' />
- patch libvirt to properly probe for GICv2 and GICv3 support
- patch libvirt to generally handle virt-host-validate on ARM
And that should be enough for other tools such as OpenStack with Nova to
probe and create the VMs it wishes.
Does that about capture it?
Thanks,
-Christoffer