]> xenbits.xensource.com Git - libvirt.git/commitdiff
tools: virt-host-validate: HW virt support on s390
authorBjoern Walk <bwalk@linux.vnet.ibm.com>
Tue, 3 May 2016 06:10:54 +0000 (08:10 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Wed, 4 May 2016 14:30:30 +0000 (16:30 +0200)
Extend the detection of hardware virtualization to the s390 platform.

Signed-off-by: Bjoern Walk <bwalk@linux.vnet.ibm.com>
tools/virt-host-validate-common.c
tools/virt-host-validate-common.h
tools/virt-host-validate-qemu.c

index 3c19249722c0df42f92f34316affe23877860083..4bfc52af324d9d0edb651fdf450a82bfc539e6d8 100644 (file)
@@ -40,7 +40,8 @@
 
 VIR_ENUM_IMPL(virHostValidateCPUFlag, VIR_HOST_VALIDATE_CPU_FLAG_LAST,
               "vmx",
-              "svm");
+              "svm",
+              "sie");
 
 static bool quiet;
 
index 26e006b723a5c7db82b3af207462c74af5694c61..c14e92223f40f8dafa2e05e47faa4f1f0570eedc 100644 (file)
@@ -37,6 +37,7 @@ typedef enum {
 typedef enum {
     VIR_HOST_VALIDATE_CPU_FLAG_VMX = 0,
     VIR_HOST_VALIDATE_CPU_FLAG_SVM,
+    VIR_HOST_VALIDATE_CPU_FLAG_SIE,
 
     VIR_HOST_VALIDATE_CPU_FLAG_LAST,
 } virHostValidateCPUFlag;
index 47f2f988775eb7d675c40aa7a09b0fde7715a74f..56ec3c7fbe4d308b909efbb17b4a161fbca2b9a3 100644 (file)
 
 #include "virt-host-validate-qemu.h"
 #include "virt-host-validate-common.h"
+#include "virarch.h"
 #include "virbitmap.h"
 
 int virHostValidateQEMU(void)
 {
     virBitmapPtr flags;
     int ret = 0;
+    bool hasHwVirt = false;
 
     virHostMsgCheck("QEMU", "%s", _("for hardware virtualization"));
 
     if (!(flags = virHostValidateGetCPUFlags()))
         return -1;
 
-    if ((virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_SVM) ||
-         virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_VMX))) {
+    switch (virArchFromHost()) {
+    case VIR_ARCH_I686:
+    case VIR_ARCH_X86_64:
+        if (virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_SVM) ||
+            virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_VMX))
+            hasHwVirt = true;
+        break;
+    case VIR_ARCH_S390:
+    case VIR_ARCH_S390X:
+        if (virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_SIE))
+            hasHwVirt = true;
+        break;
+    default:
+        hasHwVirt = false;
+    }
+
+    if (hasHwVirt) {
         virHostMsgPass();
         if (virHostValidateDeviceExists("QEMU", "/dev/kvm",
                                         VIR_HOST_VALIDATE_FAIL,