libvirt/tools
Michal Privoznik 2c13a2a7c9 virt-host-validate: Detect SMMU support on ARMs
In vir-host-validate we do two checks related to IOMMU:

  1) hardware support, and
  2) kernel support.

While users are usually interested in the latter, the former also
makes sense. And for the former (hardware support) we have this
huge if-else block for nearly every architecture, except ARM.

Now, IOMMU is called SMMU in ARM world, and while there's
certainly a definitive way of detecting SMMU support (e.g. via
dumping some registers in asm), we can work around this - just
like we do for Intel and AMD - and check for an ACPI table
presence.

In ARM world, there's I/O Remapping Table (IORT) which describes
SMMU capabilities on given host and is exposed in sysfs
(regardless of arm_smmu module).

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2178885
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2023-03-24 14:44:38 +01:00
..
bash-completion meson: Use dicts to initialize cfg_data objects 2022-04-01 15:33:19 +02:00
nss Use G_N_ELEMENTS() more 2023-03-13 13:29:07 +01:00
wireshark meson: Replace meson.source_root() with meson.project_source_root() 2022-10-10 15:06:09 +02:00
libvirt-guests.service.in libvirt-guests: Fix dependency ordering in service file 2022-09-26 13:04:48 +02:00
libvirt-guests.sh.in libvirt-guests: Sync time for autostarted guests 2020-11-04 12:18:05 +01:00
libvirt_recover_xattrs.sh tools: fix iterating over argv when recovering xattr 2021-11-30 10:45:35 +00:00
libvirt_win_icon_16x16.ico
libvirt_win_icon_32x32.ico
libvirt_win_icon_48x48.ico
libvirt_win_icon_64x64.ico
meson.build tools: Fix install_mode for some scripts 2022-12-08 09:26:56 +01:00
virsh-backup.c virsh: Require --xpath for *dumpxml 2022-07-25 09:50:21 +02:00
virsh-backup.h backup: Implement virsh support for backup 2019-12-10 12:41:56 +01:00
virsh-checkpoint.c virsh: Require --xpath for *dumpxml 2022-07-25 09:50:21 +02:00
virsh-checkpoint.h backup: Implement virsh support for checkpoints 2019-07-26 16:48:58 -05:00
virsh-completer-checkpoint.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-checkpoint.h virsh-completer*.h: Use modern header style 2021-09-17 09:40:46 +02:00
virsh-completer-domain.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-domain.h virsh: Move 'cmdEvent' and all of its machinery to virsh-domain-event.c 2022-03-03 11:06:56 +01:00
virsh-completer-host.c virsh: Add completer for hypervisor-cpu-baseline --model 2022-10-10 14:31:43 +02:00
virsh-completer-host.h virsh: Add completer for hypervisor-cpu-baseline --model 2022-10-10 14:31:43 +02:00
virsh-completer-interface.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-interface.h virsh-completer*.h: Use modern header style 2021-09-17 09:40:46 +02:00
virsh-completer-network.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-network.h virsh: Introduce net-update --section completer 2022-01-19 16:48:33 +01:00
virsh-completer-nodedev.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-nodedev.h virsh: Provide completer for PCI backend drivers 2022-04-04 16:30:48 +02:00
virsh-completer-nwfilter.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-nwfilter.h virsh-completer*.h: Use modern header style 2021-09-17 09:40:46 +02:00
virsh-completer-pool.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-pool.h virsh-completer*.h: Use modern header style 2021-09-17 09:40:46 +02:00
virsh-completer-secret.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-secret.h virsh-completer*.h: Use modern header style 2021-09-17 09:40:46 +02:00
virsh-completer-snapshot.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-snapshot.h virsh-completer*.h: Use modern header style 2021-09-17 09:40:46 +02:00
virsh-completer-volume.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer-volume.h virsh: Provide completer for vol-wipe algorithms 2022-03-11 09:10:24 +01:00
virsh-completer.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-completer.h virsh: Introduce virshEnumComplete() 2022-03-15 13:36:56 +01:00
virsh-console.c util: remove virObjectUnref() adapters 2022-07-15 16:44:39 -05:00
virsh-console.h tools: use #pragma once in headers 2019-06-19 17:12:34 +02:00
virsh-domain-event.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
virsh-domain-event.h virsh: Move 'cmdEvent' and all of its machinery to virsh-domain-event.c 2022-03-03 11:06:56 +01:00
virsh-domain-monitor.c Introduce VIR_DOMAIN_PAUSED_API_ERROR 2023-03-15 10:52:14 +01:00
virsh-domain-monitor.h virsh: Fix virshDomainInterfaceSourceCompleter 2020-01-07 16:12:55 +01:00
virsh-domain.c tools: use g_autofree more 2023-02-02 16:18:08 +01:00
virsh-domain.h virsh: Add mode option to domdirtyrate-calc virsh api 2022-02-21 13:34:16 +01:00
virsh-edit.c Use G_GNUC_FALLTHROUGH instead of ATTRIBUTE_FALLTHROUGH 2019-10-15 16:14:19 +02:00
virsh-host.c virsh: Add completer for hypervisor-cpu-baseline --model 2022-10-10 14:31:43 +02:00
virsh-host.h virsh-host: Avoid 'vir' prefix for locally declared VIR_ENUM* helpers 2021-07-23 09:59:12 +02:00
virsh-interface.c virsh: Require --xpath for *dumpxml 2022-07-25 09:50:21 +02:00
virsh-interface.h tools: use #pragma once in headers 2019-06-19 17:12:34 +02:00
virsh-network.c tools: use g_autofree more 2023-02-02 16:18:08 +01:00
virsh-network.h virsh: Introduce net-update --section completer 2022-01-19 16:48:33 +01:00
virsh-nodedev.c nodedev: Add VIR_NODE_DEVICE_(CREATE|DEFINE)_XML_VALIDATE flags 2022-11-01 13:07:20 +01:00
virsh-nodedev.h tools: s/Nodedev/NodeDevice/ 2019-08-09 09:03:53 +02:00
virsh-nwfilter.c tools: use g_autofree more 2023-02-02 16:18:08 +01:00
virsh-nwfilter.h tools: use #pragma once in headers 2019-06-19 17:12:34 +02:00
virsh-pool.c virsh: Require --xpath for *dumpxml 2022-07-25 09:50:21 +02:00
virsh-pool.h virsh-pool: Remove static from virshStoragePoolList{Free,Collect} 2021-06-16 10:32:33 +02:00
virsh-secret.c virsh: Require --xpath for *dumpxml 2022-07-25 09:50:21 +02:00
virsh-secret.h tools: remove unnecessary includes 2020-08-03 15:30:40 +02:00
virsh-snapshot.c virsh: Add message to terminal when running snapshot-revert 2022-12-07 14:33:28 +01:00
virsh-snapshot.h tools: remove unnecessary includes 2020-08-03 15:30:40 +02:00
virsh-util.c virsh: Use proper helper for parsing XML in virshDumpXML 2022-10-06 10:54:25 +02:00
virsh-util.h tools: add helper method for printing an XML document 2022-06-20 10:40:34 +01:00
virsh-volume.c virsh: virshMakeCloneXML: Use virXPathNode instead of xmlXPathEval 2022-12-02 16:49:25 +01:00
virsh-volume.h virsh: Provide completer for vol-wipe algorithms 2022-03-11 09:10:24 +01:00
virsh.c virsh: Report iSCSI-direct backend in long version 2022-11-24 15:23:47 +01:00
virsh.h virsh: Add --model option for hypervisor-cpu-baseline 2022-10-10 14:31:43 +02:00
virsh_win_icon.rc
virt-admin-completer.c lib: Drop internal virXXXPtr typedefs 2021-04-13 17:00:38 +02:00
virt-admin-completer.h tools: use #pragma once in headers 2019-06-19 17:12:34 +02:00
virt-admin.c tools: use g_autofree more 2023-02-02 16:18:08 +01:00
virt-admin.h lib: Drop internal virXXXPtr typedefs 2021-04-13 17:00:38 +02:00
virt-host-validate-bhyve.c virt-host-validate-bhyve.c: Reintroduce @ret to virHostValidateBhyve() 2020-05-05 14:45:58 +02:00
virt-host-validate-bhyve.h tools: use #pragma once in headers 2019-06-19 17:12:34 +02:00
virt-host-validate-ch.c tools: virt-host-validate: fix memory leak 2021-11-23 16:59:36 +01:00
virt-host-validate-ch.h tools: add virt-host-validate-ch for ch driver 2021-10-12 17:28:35 +02:00
virt-host-validate-common.c virt-host-validate: Detect SMMU support on ARMs 2023-03-24 14:44:38 +01:00
virt-host-validate-common.h tools: only fail validations if VIR_HOST_VALIDATE_FAIL is set 2021-06-08 08:52:07 +02:00
virt-host-validate-lxc.c virt-host-validate: require freezer for LXC 2018-10-05 15:53:29 +02:00
virt-host-validate-lxc.h tools: use #pragma once in headers 2019-06-19 17:12:34 +02:00
virt-host-validate-qemu.c virt-host-validate: Improve failure message when no HW virt is found 2022-06-01 11:58:09 +02:00
virt-host-validate-qemu.h tools: use #pragma once in headers 2019-06-19 17:12:34 +02:00
virt-host-validate.c lib: Use the same style in the 'struct option' 2022-11-22 10:15:11 +01:00
virt-login-shell-helper.c lib: Use the same style in the 'struct option' 2022-11-22 10:15:11 +01:00
virt-login-shell.c Use G_N_ELEMENTS() more 2023-03-13 13:29:07 +01:00
virt-login-shell.conf virt-login-shell: add ability to auto-detect shell from container 2016-06-10 11:03:02 +01:00
virt-pki-query-dn.c lib: Use the same style in the 'struct option' 2022-11-22 10:15:11 +01:00
virt-pki-validate.in Correct links to TLS certificate setup page 2022-04-25 16:33:01 +02:00
virt-qemu-qmp-proxy tools: add virt-qemu-qmp-proxy for proxying QMP via libvirt QEMU guests 2022-10-07 14:32:36 +01:00
virt-qemu-sev-validate tools: Fix detection of remote libvirt access in virt-qemu-sev-validate 2023-02-03 11:28:56 -07:00
virt-sanlock-cleanup.in build: Extract pod from source files 2016-04-25 15:40:43 +02:00
virt-xml-validate.in virt-xml-validate: Fix incorrect wildcards for XML roots 2022-07-07 12:21:16 +02:00
vsh-table.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
vsh-table.h vsh-table: Ensure NULL terminated arguments to vshTable*() 2021-12-17 15:05:58 +01:00
vsh.c tools: Remove unused includes 2022-06-16 06:43:58 +02:00
vsh.h virsh: Add --model option for hypervisor-cpu-baseline 2022-10-10 14:31:43 +02:00