]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
tools: inform user which hardware virt was found during validation
authorDaniel P. Berrangé <berrange@redhat.com>
Thu, 20 Nov 2025 09:50:29 +0000 (04:50 -0500)
committerDaniel P. Berrangé <berrange@redhat.com>
Thu, 20 Nov 2025 17:27:30 +0000 (17:27 +0000)
On x86 we can indicate VMX or SVM, while s390x would be SIE, and
PowerPC would be LCPR (Logical Partitioning Control Register).

Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
tools/virt-host-validate-qemu.c

index 833bb1b91458dddd91e57d613ecce2cc3e8ac943..c5c1a0ab7ec1aa2c8f5a42a5a5220e549280bc1e 100644 (file)
@@ -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,18 +45,26 @@ 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:
+        hwVirtName = "LPCR";
         hasVirtFlag = true;
         hasHwVirt = true;
         break;
@@ -66,7 +75,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"));