qemu/hw/vfio
Joao Martins dddfd8d667 vfio/iommufd: Probe and request hwpt dirty tracking capability
In preparation to using the dirty tracking UAPI, probe whether the IOMMU
supports dirty tracking. This is done via the data stored in
hiod::caps::hw_caps initialized from GET_HW_INFO.

Qemu doesn't know if VF dirty tracking is supported when allocating
hardware pagetable in iommufd_cdev_autodomains_get(). This is because
VFIODevice migration state hasn't been initialized *yet* hence it can't pick
between VF dirty tracking vs IOMMU dirty tracking. So, if IOMMU supports
dirty tracking it always creates HWPTs with IOMMU_HWPT_ALLOC_DIRTY_TRACKING
even if later on VFIOMigration decides to use VF dirty tracking instead.

Signed-off-by: Joao Martins <joao.m.martins@oracle.com>
[ clg: - Fixed vbasedev->iommu_dirty_tracking assignment in
         iommufd_cdev_autodomains_get()
       - Added warning for heterogeneous dirty page tracking support
	 in iommufd_cdev_autodomains_get() ]
Signed-off-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
2024-07-23 17:14:52 +02:00
..
amd-xgbe.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
ap.c vfio/ap: Don't initialize HOST_IOMMU_DEVICE with mdev 2024-07-23 17:14:52 +02:00
calxeda-xgmac.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
ccw.c vfio/ccw: Don't initialize HOST_IOMMU_DEVICE with mdev 2024-07-23 17:14:52 +02:00
common.c vfio/{iommufd, container}: Invoke HostIOMMUDevice::realize() during attach_device() 2024-07-23 17:14:52 +02:00
container-base.c vfio-container-base: Introduce vfio_container_get_iova_ranges() helper 2024-07-09 11:50:37 +02:00
container.c vfio/{iommufd, container}: Invoke HostIOMMUDevice::realize() during attach_device() 2024-07-23 17:14:52 +02:00
cpr.c vfio/cpr: Make vfio_cpr_register_container() return bool 2024-05-16 16:59:20 +02:00
display.c vfio/display: Fix vfio_display_edid_init() error path 2024-07-09 11:50:37 +02:00
helpers.c vfio/{iommufd, container}: Invoke HostIOMMUDevice::realize() during attach_device() 2024-07-23 17:14:52 +02:00
igd.c vfio/igd: Use g_autofree in vfio_probe_igd_bar4_quirk() 2024-05-22 10:04:22 +02:00
iommufd.c vfio/iommufd: Probe and request hwpt dirty tracking capability 2024-07-23 17:14:52 +02:00
Kconfig hw/vfio: Move the IGD quirk code to a separate file 2020-02-06 11:55:42 -07:00
meson.build vfio: register container for cpr 2024-03-08 22:10:13 +01:00
migration.c vfio/migration: Enhance VFIO migration state tracing 2024-05-16 16:59:20 +02:00
pci-quirks.c vfio/pci-quirks: Make vfio_add_*_cap() return bool 2024-05-22 10:04:22 +02:00
pci.c vfio/iommufd: Don't initialize nor set a HOST_IOMMU_DEVICE with mdev 2024-07-23 17:14:52 +02:00
pci.h vfio/pci-quirks: Make vfio_add_*_cap() return bool 2024-05-22 10:04:22 +02:00
platform.c vfio/platform: Make vfio_populate_device() and vfio_base_device_init() return bool 2024-05-22 10:04:21 +02:00
spapr.c vfio/container: Change VFIOContainerBase to use QOM 2024-06-24 23:15:31 +02:00
trace-events hw/vfio: Remove newline character in trace events 2024-06-10 13:05:27 -04:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00