Hi Joerg, > 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 wherein the privileged user would want to use the device in > pass-through mode when the device is used for host so that it would be high > performing. Presently, this is not supported. Hence add support to change the > default domain of a group dynamically. > > Support this through a sysfs file, namely > "/sys/kernel/iommu_groups/<grp_id>/type". > > Hi Joerg, > Sorry! for _huge_ delay in posting a V2 of this patch set. Was stuck with some > internal PoC work. Will be consistent from now. > > Changes from V1: > ---------------- > 1. V1 patch set wasn't updating dma_ops for some vendors (Eg: AMD), hence, > change the logic of updating default domain as below (because adding a > device > to iommu_group automatically updates dma_ops) > a. Allocate a new domain > b. For every device in the group > i. Remove the device from the group > ii. Add the device back to the group > c. Free previous domain > 2. Drop 1st patch of V1 (iommu/vt-d: Modify device_def_domain_type() to use > at > runtime) because "iommu=pt" has no effect on this function anymore. > 3. Added a patch to take/release lock while reading iommu_group- > >default_domain->type > because it can be changed any time by user. > 4. Before changing default domain type of a group, check if the group is > directly assigned for user level access. If so, abort. > 5. Sanitize return path (using ternary operator) in iommu_group_store_type() > 6. > Split 2nd patch of V1 (iommu: Add device_def_domain_type() call back function > to iommu_ops) into two patches such that iommu generic changes are now in > 1st > patch of V2 and vt-d specific changes are in 2nd patch of V2. > 7. Rename device_def_domain_type() to dev_def_domain_type() 8. Remove > example from documentation 9. Change the value written to file > "/sys/kernel/iommu_groups/<grp_id>/type" > from "dma" to "DMA".
Just a gentle reminder, could you please review this patch set and let me know your comments? Regards, Sai _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu