[libvirt] [PATCH 5/7] qemu: Always enable GIC on ARM virt machines

Andrea Bolognani abologna at redhat.com
Mon Feb 8 13:41:35 UTC 2016


On Sun, 2016-02-07 at 09:42 -0500, John Ferlan wrote:
> On 02/03/2016 03:26 PM, Andrea Bolognani wrote:
> > GIC is always available to ARM virt machines, and the domain XML should
> > reflect this fact.
> > ---
> >  src/qemu/qemu_domain.c                                     | 14 ++++++++++++++
> >  .../qemuxml2argv-aarch64-aavmf-virtio-mmio.xml             |  1 +
> >  2 files changed, 15 insertions(+)
>> > diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> > index d120e15..5017cbb 100644
> > --- a/src/qemu/qemu_domain.c
> > +++ b/src/qemu/qemu_domain.c
> > @@ -1241,6 +1241,20 @@ qemuDomainDefAddDefaultDevices(virDomainDefPtr def,
> >  static int
> >  qemuDomainDefAddDefaultFeatures(virDomainDefPtr def)
> >  {
> > +    switch (def->os.arch) {
> > +    case VIR_ARCH_ARMV7L:
> > +    case VIR_ARCH_AARCH64:
> > +        if (STREQ(def->os.machine, "virt") ||
> > +            STRPREFIX(def->os.machine, "virt-")) {
> > +            /* GIC is always available to ARM virt machines */
> > +            def->features[VIR_DOMAIN_FEATURE_GIC] = VIR_TRISTATE_SWITCH_ON;
> 
> See once on - we then have a version='host' and we're good to go.
> 
> Of course, as I'm typing I realize that we wouldn't print out
> version='host' if it were the default...  But that may not be a bad
> thing - although we could.

That was pretty much the issue :)

For existing guests, <gic/> means <gic version='2'/>, but we pick the
default every single time the XML is loaded instead of explicitly
writing it out in the XML. Which was probably a mistake, because now
we can't really change the default without affecting existing guests :(

On the other hand, QEMU defaults to version 2 as well, so it kinda
fits nicely I guess?

Point is, I think keeping the default to version 2 in libvirt and
have upper layers (eg. virt-install via libosinfo) pick a better
value when creating new guests is in line with how we do a lot of
other stuff in libvirt.

Cheers.

-- 
Andrea Bolognani
Software Engineer - Virtualization Team




More information about the libvir-list mailing list