]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virt-host-validate: Fix IOMMU output on aarch64
authorFabiano FidĂȘncio <fabiano@fidencio.org>
Tue, 8 Jun 2021 20:16:42 +0000 (22:16 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Wed, 9 Jun 2021 10:51:36 +0000 (12:51 +0200)
virt-host-validate should print "Checking for device assignment IOMMU
support" for all architectures, not only for Intel / AMD.

This is the output without the patch:
```
[fidencio@dentola libvirt]$ virt-host-validate
  QEMU: comprobando if device /dev/kvm exists                                   : PASA
  QEMU: comprobando if device /dev/kvm is accessible                            : PASA
  QEMU: comprobando if device /dev/vhost-net exists                             : PASA
  QEMU: comprobando if device /dev/net/tun exists                               : PASA
  QEMU: comprobando for cgroup 'cpu' controller support                         : PASA
  QEMU: comprobando for cgroup 'cpuacct' controller support                     : PASA
  QEMU: comprobando for cgroup 'cpuset' controller support                      : PASA
  QEMU: comprobando for cgroup 'memory' controller support                      : PASA
  QEMU: comprobando for cgroup 'devices' controller support                     : ADVERTENCIA (Enable 'devices' in kernel Kconfig file or mount/enable cgroup controller in your system)
  QEMU: comprobando for cgroup 'blkio' controller support                       : PASA
ADVERTENCIA (Unknown if this platform has IOMMU support)
  QEMU: comprobando for secure guest support                                    : ADVERTENCIA (Unknown if this platform has Secure Guest support)

```

This is the output with the patch:
```
[fidencio@dentola libvirt]$ ./build/tools/virt-host-validate
  QEMU: Checking if device /dev/kvm exists                                   : PASS
  QEMU: Checking if device /dev/kvm is accessible                            : PASS
  QEMU: Checking if device /dev/vhost-net exists                             : PASS
  QEMU: Checking if device /dev/net/tun exists                               : PASS
  QEMU: Checking for cgroup 'cpu' controller support                         : PASS
  QEMU: Checking for cgroup 'cpuacct' controller support                     : PASS
  QEMU: Checking for cgroup 'cpuset' controller support                      : PASS
  QEMU: Checking for cgroup 'memory' controller support                      : PASS
  QEMU: Checking for cgroup 'devices' controller support                     : WARN (Enable 'devices' in kernel Kconfig file or mount/enable cgroup controller in your system)
  QEMU: Checking for cgroup 'blkio' controller support                       : PASS
  QEMU: Checking for device assignment IOMMU support                         : WARN (Unknown if this platform has IOMMU support)
  QEMU: Checking for secure guest support                                    : WARN (Unknown if this platform has Secure Guest support)
```

Signed-off-by: Fabiano FidĂȘncio <fabiano@fidencio.org>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
tools/virt-host-validate-common.c

index 8ce45609e7e2cfdcbf5d2d060a1150c1b6193392..556223242ddeb3f537b8c7489958f7b38d3d7dcc 100644 (file)
@@ -338,6 +338,8 @@ int virHostValidateIOMMU(const char *hvname,
     struct dirent *dent;
     int rc;
 
+    virHostMsgCheck(hvname, "%s", _("for device assignment IOMMU support"));
+
     flags = virHostValidateGetCPUFlags();
 
     if (flags && virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_VMX))
@@ -348,7 +350,6 @@ int virHostValidateIOMMU(const char *hvname,
     virBitmapFree(flags);
 
     if (isIntel) {
-        virHostMsgCheck(hvname, "%s", _("for device assignment IOMMU support"));
         if (access("/sys/firmware/acpi/tables/DMAR", F_OK) == 0) {
             virHostMsgPass();
             bootarg = "intel_iommu=on";
@@ -360,7 +361,6 @@ int virHostValidateIOMMU(const char *hvname,
             return VIR_HOST_VALIDATE_FAILURE(level);
         }
     } else if (isAMD) {
-        virHostMsgCheck(hvname, "%s", _("for device assignment IOMMU support"));
         if (access("/sys/firmware/acpi/tables/IVRS", F_OK) == 0) {
             virHostMsgPass();
             bootarg = "iommu=pt iommu=1";
@@ -372,7 +372,7 @@ int virHostValidateIOMMU(const char *hvname,
             return VIR_HOST_VALIDATE_FAILURE(level);
         }
     } else if (ARCH_IS_PPC64(arch)) {
-        /* Empty Block */
+        virHostMsgPass();
     } else if (ARCH_IS_S390(arch)) {
         g_autoptr(DIR) dir = NULL;
 
@@ -385,6 +385,7 @@ int virHostValidateIOMMU(const char *hvname,
         rc = virDirRead(dir, &dent, NULL);
         if (rc <= 0)
             return 0;
+        virHostMsgPass();
     } else {
         virHostMsgFail(level,
                        "Unknown if this platform has IOMMU support");