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