On 21/08/2019 03:42, Sai Praneeth Prakhya wrote:
The default domain type of an iommu group can be changed using file
"/sys/kernel/iommu_groups/<grp_id>/type". Hence, document it's usage and
more importantly spell out it's limitations and an example.

Cc: Christoph Hellwig <h...@lst.de>
Cc: Joerg Roedel <j...@8bytes.org>
Cc: Ashok Raj <ashok....@intel.com>
Cc: Will Deacon <will.dea...@arm.com>
Cc: Lu Baolu <baolu...@linux.intel.com>
Cc: Sohil Mehta <sohil.me...@intel.com>
Cc: Robin Murphy <robin.mur...@arm.com>
Cc: Jacob Pan <jacob.jun....@linux.intel.com>
Signed-off-by: Sai Praneeth Prakhya <sai.praneeth.prak...@intel.com>
---
 .../ABI/testing/sysfs-kernel-iommu_groups     | 35 +++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/Documentation/ABI/testing/sysfs-kernel-iommu_groups 
b/Documentation/ABI/testing/sysfs-kernel-iommu_groups
index 017f5bc3920c..0a70b3a66ff3 100644
--- a/Documentation/ABI/testing/sysfs-kernel-iommu_groups
+++ b/Documentation/ABI/testing/sysfs-kernel-iommu_groups
@@ -33,3 +33,38 @@ Description:    In case an RMRR is used only by graphics or 
USB devices
                it is now exposed as "direct-relaxable" instead of "direct".
                In device assignment use case, for instance, those RMRR
                are considered to be relaxable and safe.
+
+What:          /sys/kernel/iommu_groups/<grp_id>/type
+Date:          August 2019
+KernelVersion: v5.4
+Contact:       Sai Praneeth Prakhya <sai.praneeth.prak...@intel.com>
+Description:   /sys/kernel/iommu_groups/<grp_id>/type lets the user know the
+               type of default domain in use by iommu for this group. A
+               privileged user could request kernel to change the group type by
+               writing to this file. Presently, only three types are supported

It's unclear whether the following is a list of all values the user could both read and write (which it isn't).

+               1. dma: All the DMA transactions from the devices in this group
+                       are translated by the iommu.

Why "dma", and not "DMA" (which is what we would read for DMA type)?

+               2. identity: All the DMA transactions from the devices in this
+                            group are *not* translated by the iommu.
+               3. auto: Kernel decides one among dma/identity

Isn't this the same as reset value, which we could read and remember?

(And the kernel could reject when we attempt to change to a disallowed type).

+               Note:
+               -----
+               A group type could be modified only when *all* the devices in
+               the group are not binded to any device driver. So, the user has
+               to first unbind the appropriate drivers and then change the
+               default domain type.
+               Caution:
+               --------
+               Unbinding a device driver will take away the drivers control
+               over the device and if done on devices that host root file
+               system could lead to catastrophic effects (the user might
+               need to reboot the machine to get it to normal state). So, it's
+               expected that the user understands what he is doing.

I think that this goes without saying.

+               Example:
+               --------
+               # Unbind USB device driver
+               1. echo "0000:00:14.0" > /sys/bus/pci/drivers/xhci_hcd/unbind
+               # Put the USB device in identity mode (a.k.a pass through)
+               2. echo "identity" > /sys/kernel/iommu_groups/<grp_id>/type
+               # Re-bind the driver
+               3. echo "0000:00:14.0" > /sys/bus/pci/drivers/xhci_hcd/bind


Thanks,
John


_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to