Hi All,

I am working on an IOMMU driver feature that allows a user to specify if the 
DMA from a device should be translated by IOMMU or not. Presently, we support 
only all devices or none mode i.e. if user specifies "iommu=pt" [X86] or 
"iommu.passthrough" [ARM64] through kernel command line, all the devices would 
be in pass through mode and we don't have per device granularity, but, we were 
requested by a customer to selectively put devices in pass through mode and not 
all.

Since, this feature could be generic across architectures, we thought it would 
be better if the user interface is discussed in the community first. We are 
envisioning this to be used both during boot time and runtime and hence having 
a kernel command line argument along with a sysfs entry are needed. So, please 
pour in your suggestions on how the user interface should look like to make it 
architecture agnostic.


1.      Have a kernel command line argument that takes a list of BDF's as an 
input and puts them in pass through mode

a.      Accepting BDF as an input has a downside - BDF is dynamic and could 
change if BIOS/OS enumerates a new device in next reboot

b.      Accepting <vendor_id:device_id> pair as an input has a downside - What 
to do when there are multiple such devices and user would like to put only some 
of them in PT mode

2.      Have a sysfs file which takes 1 or 0 as an input to enable/disable pass 
through mode. Some places that seem to be reasonable are

a.      /sys/class/iommu/dmar0/devices/

b.      /sys/kernel/iommu_groups/<id>/devices

I am looking for a consensus on *how the kernel command line argument should 
look like and path for sysfs entry*. Also, please note that if a device is put 
in pass through mode it won't be available for the guest and that's ok.

Regards,
Sai

PS: Idea credits: Ashok Raj
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to