Re: [libvirt PATCH 08/20] qemu: Introduce virQEMUCapsAccelStr

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jan 17, 2022 at 11:52:48AM +0100, Andrea Bolognani wrote:
> From: Roman Bolshakov <r.bolshakov@xxxxxxxxx>
> 
> This makes possible to add more accelerators by touching less code and
> reduces code duplication.
> 
> Signed-off-by: Roman Bolshakov <r.bolshakov@xxxxxxxxx>
> Signed-off-by: Andrea Bolognani <abologna@xxxxxxxxxx>
> Tested-by: Brad Laue <brad@xxxxxxxxxx>
> ---
>  src/qemu/qemu_capabilities.c | 14 ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)

Reviewed-by: Daniel P. Berrangé <berrange@xxxxxxxxxx>

> 
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 401ffe89c9..8d3e8b3afb 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -793,6 +793,16 @@ const char *virQEMUCapsArchToString(virArch arch)
>  }
>  
>  
> +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

> +
> +
>  /* Checks whether a domain with @guest arch can run natively on @host.
>   */
>  bool
> @@ -4079,7 +4089,7 @@ virQEMUCapsLoadAccel(virQEMUCaps *qemuCaps,
>                       virDomainVirtType type)
>  {
>      virQEMUCapsAccel *caps = virQEMUCapsGetAccel(qemuCaps, type);
> -    const char *typeStr = type == VIR_DOMAIN_VIRT_KVM ? "kvm" : "tcg";
> +    const char *typeStr = virQEMUCapsAccelStr(type);
>  
>      if (virQEMUCapsLoadHostCPUModelInfo(caps, ctxt, typeStr) < 0)
>          return -1;
> @@ -4632,7 +4642,7 @@ virQEMUCapsFormatAccel(virQEMUCaps *qemuCaps,
>                         virDomainVirtType type)
>  {
>      virQEMUCapsAccel *caps = virQEMUCapsGetAccel(qemuCaps, type);
> -    const char *typeStr = type == VIR_DOMAIN_VIRT_KVM ? "kvm" : "tcg";
> +    const char *typeStr = virQEMUCapsAccelStr(type);
>  
>      virQEMUCapsFormatHostCPUModelInfo(caps, buf, typeStr);
>      virQEMUCapsFormatCPUModels(caps, buf, typeStr);
> -- 
> 2.34.1
> 

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux