[libvirt PATCH 08/20] qemu: Introduce virQEMUCapsAccelStr

Andrea Bolognani abologna at redhat.com
Fri Jan 21 17:20:42 UTC 2022


On Fri, Jan 21, 2022 at 04:57:34PM +0000, Daniel P. Berrangé wrote:
> On Mon, Jan 17, 2022 at 11:52:48AM +0100, Andrea Bolognani wrote:
> > +static const char *
> > +virQEMUCapsAccelStr(virDomainVirtType type)
> > +{
> > +    if (type == VIR_DOMAIN_VIRT_QEMU)
> > +        return "tcg";
> > +
> > +    return virDomainVirtTypeToString(type);
> > +}
>
> I don't like this use of virDomainVirtTypeToString since the
> vast majority of values it returns are not valid QEMU accelerators.
>
> I'd say we should just directly return the virt types we actually
> expect to get - the invalid ones will have already been filtered
> out. ie
>
>  virQEMUCapsAccelStr(virDomainVirtType type)
>  {
>      if (type == VIR_DOMAIN_VIRT_KVM)
>          return "kvm";
>      else
>          return "tcg";
>  }
>
> that is still easily extended to add hvf and so on, without being
> misleading about supporting any virt type

The original version works because, as you note, we already make sure
much earlier[1] that only values that correspond to valid QEMU
accelerators can be used, but I'm okay with being more explicit.

I'd rather use a switch statement though, that way next time an
accelerator has to be added there will be fewer spots where we can
easily forget to add handling for it. Does that sound good?


[1] In qemuValidateDomainDef() via virQEMUCapsIsVirtTypeSupported()
-- 
Andrea Bolognani / Red Hat / Virtualization





More information about the libvir-list mailing list