qemu/backends
Zhenzhong Duan 1f94b21801 backends: Introduce HostIOMMUDevice abstract
A HostIOMMUDevice is an abstraction for an assigned device that is protected
by a physical IOMMU (aka host IOMMU). The userspace interaction with this
physical IOMMU can be done either through the VFIO IOMMU type 1 legacy
backend or the new iommufd backend. The assigned device can be a VFIO device
or a VDPA device. The HostIOMMUDevice is needed to interact with the host
IOMMU that protects the assigned device. It is especially useful when the
device is also protected by a virtual IOMMU as this latter use the translation
services of the physical IOMMU and is constrained by it. In that context the
HostIOMMUDevice can be passed to the virtual IOMMU to collect physical IOMMU
capabilities such as the supported address width. In the future, the virtual
IOMMU will use the HostIOMMUDevice to program the guest page tables in the
first translation stage of the physical IOMMU.

Introduce .realize() to initialize HostIOMMUDevice further after instance init.

Suggested-by: Cédric Le Goater <clg@redhat.com>
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
2024-06-24 23:15:30 +02:00
..
tpm backends/tpm: Remove newline character in trace event 2024-06-10 13:05:27 -04:00
confidential-guest-support.c confidential guest support: Introduce new confidential guest support class 2021-02-08 16:57:37 +11:00
cryptodev-builtin.c backends/cryptodev-builtin: Fix local_error leaks 2024-04-29 15:26:39 +03:00
cryptodev-hmp-cmds.c hmp: add cryptodev info command 2023-03-07 12:38:59 -05:00
cryptodev-lkcf.c cryptodev: Use CryptoDevBackendOpInfo for operation 2023-03-07 12:38:59 -05:00
cryptodev-vhost-user.c cryptodev-vhost-user: add asymmetric crypto support 2023-06-23 02:54:44 -04:00
cryptodev-vhost.c cryptodev: Introduce cryptodev.json 2023-03-07 12:38:59 -05:00
cryptodev.c backends/cryptodev: Do not ignore throttle/backends Errors 2024-01-19 12:28:59 +01:00
dbus-vmstate1.xml docs: move D-Bus VMState documentation to source XML 2021-12-21 10:50:21 +04:00
dbus-vmstate.c backends: Constify VMState 2023-12-30 07:38:06 +11:00
host_iommu_device.c backends: Introduce HostIOMMUDevice abstract 2024-06-24 23:15:30 +02:00
hostmem-epc.c backends/hostmem: Report error when memory size is unaligned 2024-06-08 10:33:38 +02:00
hostmem-file.c backends/hostmem: Report error when memory size is unaligned 2024-06-08 10:33:38 +02:00
hostmem-memfd.c backends/hostmem: Report error when memory size is unaligned 2024-06-08 10:33:38 +02:00
hostmem-ram.c HostMem: Add mechanism to opt in kvm guest memfd via MachineState 2024-04-23 17:35:25 +02:00
hostmem.c hostmem: simplify the code for merge and dump properties 2024-06-08 10:33:38 +02:00
iommufd.c backends/iommufd: Make iommufd_backend_*() return bool 2024-05-16 16:59:20 +02:00
Kconfig backends/iommufd: Introduce the iommufd object 2023-12-19 19:03:38 +01:00
meson.build backends: Introduce HostIOMMUDevice abstract 2024-06-24 23:15:30 +02:00
rng-builtin.c replay: rng-builtin support 2021-02-08 15:15:32 +01:00
rng-egd.c backends: Improve error messages when property can no longer be set 2022-10-27 07:56:56 +02:00
rng-random.c backends: Improve error messages when property can no longer be set 2022-10-27 07:56:56 +02:00
rng.c error: Drop superfluous #include "qapi/qmp/qerror.h" 2023-02-23 13:56:14 +01:00
trace-events backends/iommufd: Make iommufd_backend_*() return bool 2024-05-16 16:59:20 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vhost-user.c backends/vhost-user: remove the ioeventfd check 2023-03-02 03:10:47 -05:00