From 93e9e92c1efe2c647e1e3197a61a15f59f228637 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= Date: Tue, 8 Jun 2021 22:16:42 +0200 Subject: [PATCH] virt-host-validate: Fix IOMMU output on aarch64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Michal Privoznik Reviewed-by: Michal Privoznik --- tools/virt-host-validate-common.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/virt-host-validate-common.c b/tools/virt-host-validate-common.c index 8ce45609e7..556223242d 100644 --- a/tools/virt-host-validate-common.c +++ b/tools/virt-host-validate-common.c @@ -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");