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>
---
This is a follow-up on https://listman.redhat.com/archives/libvir-list/2021-June/msg00190.html
---
tools/virt-host-validate-common.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/virt-host-validate-common.c b/tools/virt-host-validate-common.c
index 9412bb7514..ee22a88b31 100644
--- a/tools/virt-host-validate-common.c
+++ b/tools/virt-host-validate-common.c
@@ -335,6 +335,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))
@@ -345,7 +347,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";
@@ -357,7 +358,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";
--
2.31.1
On 6/8/21 10:16 PM, Fabiano Fidêncio wrote: > 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> > --- > This is a follow-up on https://listman.redhat.com/archives/libvir-list/2021-June/msg00190.html > --- > tools/virt-host-validate-common.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > Almost good :-) > diff --git a/tools/virt-host-validate-common.c b/tools/virt-host-validate-common.c > index 9412bb7514..ee22a88b31 100644 > --- a/tools/virt-host-validate-common.c > +++ b/tools/virt-host-validate-common.c > @@ -335,6 +335,8 @@ int virHostValidateIOMMU(const char *hvname, > struct dirent *dent; > int rc; > > + virHostMsgCheck(hvname, "%s", _("for device assignment IOMMU support")); > + So this prints out "checking for device ..." message (without \n at EOL)... > flags = virHostValidateGetCPUFlags(); > > if (flags && virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_VMX)) > @@ -345,7 +347,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"; > @@ -357,7 +358,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"; > .. but here, later in this if-else blocks other archs have their branch too (ppc64 and s390). Therefore, I think this needs to be squashed in: diff --git i/tools/virt-host-validate-common.c w/tools/virt-host-validate-common.c index ee22a88b31..e5fe4dfc53 100644 --- i/tools/virt-host-validate-common.c +++ w/tools/virt-host-validate-common.c @@ -369,7 +369,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; @@ -382,6 +382,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"); No need to resend, just let me know if you're okay with it. I can squash it in before pushing. Michal
On Wed, Jun 9, 2021 at 11:22 AM Michal Prívozník <mprivozn@redhat.com> wrote: > > On 6/8/21 10:16 PM, Fabiano Fidêncio wrote: > > 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> > > --- > > This is a follow-up on https://listman.redhat.com/archives/libvir-list/2021-June/msg00190.html > > --- > > tools/virt-host-validate-common.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > Almost good :-) > > > diff --git a/tools/virt-host-validate-common.c b/tools/virt-host-validate-common.c > > index 9412bb7514..ee22a88b31 100644 > > --- a/tools/virt-host-validate-common.c > > +++ b/tools/virt-host-validate-common.c > > @@ -335,6 +335,8 @@ int virHostValidateIOMMU(const char *hvname, > > struct dirent *dent; > > int rc; > > > > + virHostMsgCheck(hvname, "%s", _("for device assignment IOMMU support")); > > + > > So this prints out "checking for device ..." message (without \n at EOL)... > > > flags = virHostValidateGetCPUFlags(); > > > > if (flags && virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_VMX)) > > @@ -345,7 +347,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"; > > @@ -357,7 +358,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"; > > > > .. but here, later in this if-else blocks other archs have their branch > too (ppc64 and s390). Therefore, I think this needs to be squashed in: > > diff --git i/tools/virt-host-validate-common.c w/tools/virt-host-validate-common.c > index ee22a88b31..e5fe4dfc53 100644 > --- i/tools/virt-host-validate-common.c > +++ w/tools/virt-host-validate-common.c > @@ -369,7 +369,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; > > @@ -382,6 +382,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"); > > > No need to resend, just let me know if you're okay with it. I can squash > it in before pushing. Please, go for it! Thanks, Michal! -- Fabiano Fidêncio
On 6/9/21 12:19 PM, Fabiano Fidêncio wrote: > On Wed, Jun 9, 2021 at 11:22 AM Michal Prívozník <mprivozn@redhat.com> wrote: >> >> On 6/8/21 10:16 PM, Fabiano Fidêncio wrote: >>> 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> >>> --- >>> This is a follow-up on https://listman.redhat.com/archives/libvir-list/2021-June/msg00190.html >>> --- >>> tools/virt-host-validate-common.c | 4 ++-- >>> 1 file changed, 2 insertions(+), 2 deletions(-) >> No need to resend, just let me know if you're okay with it. I can squash >> it in before pushing. > > Please, go for it! > > Thanks, Michal! > Reviewed-by: Michal Privoznik <mprivozn@redhat.com> and pushed. Michal
© 2016 - 2024 Red Hat, Inc.