On Thu, Nov 20, 2025 at 10:14:51AM +0000, Daniel P. Berrangé wrote:
> From: Daniel P. Berrangé <[email protected]>
> 
> On x86 we can indicate VMX or SVM, while s390x would be SIE.
> 
> There are several choices on ppc64 and virt-host-validate does
> not try to detect any, so don't report a specific technology
> on ppc64 arch.

After advice from some PowerPC experts, I'll add "LPCR" as the
annotation for ppc64 (Logical Parititoning Control Register).

> 
> Signed-off-by: Daniel P. Berrangé <[email protected]>
> ---
>  tools/virt-host-validate-qemu.c | 16 ++++++++++++----
>  1 file changed, 12 insertions(+), 4 deletions(-)
> 
> diff --git a/tools/virt-host-validate-qemu.c b/tools/virt-host-validate-qemu.c
> index 833bb1b914..f04fc61cb3 100644
> --- a/tools/virt-host-validate-qemu.c
> +++ b/tools/virt-host-validate-qemu.c
> @@ -34,6 +34,7 @@ int virHostValidateQEMU(void)
>      bool hasHwVirt = false;
>      bool hasVirtFlag = false;
>      virArch arch = virArchFromHost();
> +    const char *hwVirtName = NULL;
>      const char *kvmhint = _("Check that CPU and firmware supports 
> virtualization and kvm module is loaded");
>  
>      if (!(flags = virHostValidateGetCPUFlags()))
> @@ -44,15 +45,22 @@ int virHostValidateQEMU(void)
>      case VIR_ARCH_X86_64:
>          hasVirtFlag = true;
>          kvmhint = _("Check that the 'kvm-intel' or 'kvm-amd' modules are 
> loaded & the BIOS has enabled virtualization");
> -        if (virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_SVM) ||
> -            virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_VMX))
> +        if (virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_SVM)) {
> +            hwVirtName = "SVM";
>              hasHwVirt = true;
> +        }
> +        if (virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_VMX)) {
> +            hwVirtName = "VMX";
> +            hasHwVirt = true;
> +        }
>          break;
>      case VIR_ARCH_S390:
>      case VIR_ARCH_S390X:
>          hasVirtFlag = true;
> -        if (virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_SIE))
> +        if (virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_SIE)) {
> +            hwVirtName = "SIE";
>              hasHwVirt = true;
> +        }
>          break;
>      case VIR_ARCH_PPC64:
>      case VIR_ARCH_PPC64LE:
> @@ -66,7 +74,7 @@ int virHostValidateQEMU(void)
>      if (hasVirtFlag) {
>          virValidateCheck("QEMU", "%s", _("Checking for hardware 
> virtualization"));
>          if (hasHwVirt) {
> -            virValidatePass();
> +            virValidatePassDetails(hwVirtName);
>          } else {
>              virValidateFail(VIR_VALIDATE_FAIL,
>                              _("Host not compatible with KVM; HW 
> virtualization CPU features not found. Only emulated CPUs are available; 
> performance will be significantly limited"));
> -- 
> 2.51.1
> 

With 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 :|

Reply via email to