Hi Sai,
On 6/7/19 10:24 AM, Prakhya, Sai Praneeth wrote:
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.
Most iommu vendor drivers have switched from per-device to per-group
domain (a.k.a. default domain). So per-group pass-through mode makes
more sense?
By the way, can we extend this to "per-group default domain type",
instead of only "per-group pass-through mode"? Currently we have system
level default domain type, if we have finer granularity of default
domain type, both iommu drivers and end users will benefit from it.
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.
Just out of curiosity, what's the limitation for a device using pass-
through DMA domain to be assignable.
Best regards,
Baolu
Regards,
Sai
PS: Idea credits: Ashok Raj
_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu
_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu