[libvirt] ARM KVM GICv3 Support

Christoffer Dall christoffer.dall at linaro.org
Mon Dec 21 11:03:05 UTC 2015


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 at 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




More information about the libvir-list mailing list