Presently, the default domain of a group is allocated during boot time and it cannot be changed later. So, the device would typically be either in identity/pass through mode or the device would be in DMA mode as long as the system is up and running. There is no way to change the default domain type dynamically i.e. after booting, a device cannot switch between identity mode and DMA mode. Assume a use case where-in the priviliged user would want to use the device in pass-through mode when the device is used for host but would want to switch to dma protected mode when switching for VFIO in user space. Presently, this is not supported and hence add support to change default domain of a group dynamically. Support this through a sysfs file, namely "/sys/kernel/iommu_groups/<grp_id>/type". Testing: -------- Tested by dynamically changing USB device from identity mode to dma and from dma to identity. Only for x86_64 (i.e. intel_iommu/vt-d). Haven't tested for other architectures. Sai Praneeth Prakhya (4): iommu/vt-d: Modify device_def_domain_type() to use at runtime iommu: Add device_def_domain_type() call back function to iommu_ops iommu: Add support to change default domain of a group iommu: Document usage of "/sys/kernel/iommu_groups/<grp_id>/type" file .../ABI/testing/sysfs-kernel-iommu_groups | 34 ++++ drivers/iommu/intel-iommu.c | 32 +++- drivers/iommu/iommu.c | 178 +++++++++++++++++- include/linux/iommu.h | 3 + 4 files changed, 237 insertions(+), 10 deletions(-) Cc: Christoph Hellwig <hch@xxxxxx> Cc: Joerg Roedel <joro@xxxxxxxxxx> Cc: Ashok Raj <ashok.raj@xxxxxxxxx> Cc: Will Deacon <will.deacon@xxxxxxx> Cc: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx> Cc: Sohil Mehta <sohil.mehta@xxxxxxxxx> Cc: Robin Murphy <robin.murphy@xxxxxxx> Cc: Jacob Pan <jacob.jun.pan@xxxxxxxxxxxxxxx> Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prakhya@xxxxxxxxx> -- 2.19.1 _______________________________________________ iommu mailing list iommu@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/iommu