>>> depends on VIRTIO_PCI >>> select VFIO_PCI_CORE >>> select IOMMUFD_DRIVER >> >> IIUC, this is not a dependency, the device will just lack dirty page >> tracking with either the type1 backend or when using iommufd when the >> IOMMU hardware doesn't have dirty page tracking, therefore all VM >> memory is perpetually dirty. Do I have that right? > > IOMMUFD_DRIVER is selected to utilize the dirty tracking functionality of IOMMU. > Therefore, this is a select option rather than a dependency, similar to how the > pds and mlx5 VFIO drivers handle it in their Kconfig files. > Yishai, I think Alex is right here. 'select IOMMUFD_DRIVER' is more for VF dirty trackers where it uses the same helpers as IOMMUFD does for dirty tracking. But it's definitely not signaling intent for 'IOMMU dirty tracking' but rather 'VF dirty tracking' If you want to tie in to IOMMU dirty tracking you probably want to do: 'select IOMMUFD' But that is a big hammer, as you also need the VFIO_DEVICE_CDEV kconfig selected as well and probably more. Perhaps best to do like qat/hisilicon drivers and letting the user optionally pick it. Migration is anyways disabled when using type1 (unless you force it, and it then it does the perpectual dirty trick).