Re: [RFC PATCH 0/4] iommu: Per-group default domain type

Lu Baolu
2020-01-21T00:45:26Z

Hi John,

On 1/20/20 5:44 PM, John Garry wrote:
> On 01/01/2020 05:26, Lu Baolu wrote:
>> An IOMMU group represents the smallest set of devices that are considered
>> to be isolated. All devices belonging to an IOMMU group share a default
>> domain for DMA APIs. There are two types of default domain:
>> IOMMU_DOMAIN_DMA
>> and IOMMU_DOMAIN_IDENTITY. The former means IOMMU translation, while the
>> latter means IOMMU by-pass.
>>
>> Currently, the default domain type for the IOMMU groups is determined
>> globally. All IOMMU groups use a single default domain type. The global
>> default domain type can be adjusted by kernel build configuration or
>> kernel parameters.
>>
>> More and more users are looking forward to a fine grained default domain
>> type. For example, with the global default domain type set to
>> translation,
>> the OEM verndors or end users might want some trusted and fast-speed
>> devices
>> to bypass IOMMU for performance gains. On the other hand, with global
>> default domain type set to by-pass, some devices with limited system
>> memory addressing capability might want IOMMU translation to remove the
>> bounce buffer overhead.
>
> Hi Lu Baolu,
>
> Do you think that it would be a more common usecase to want
> kernel-managed devices to be passthrough for performance reasons and
> some select devices to be in DMA domain, like those with limited address
> cap or whose drivers request huge amounts of memory?
>
> I just think it would be more manageable to set kernel commandline
> parameters for this, i.e. those select few which want DMA domain.
>

It's just two sides of a coin. Currently, iommu subsystem make DMA
domain by default, that's the reason why I selected to let user set
which devices are willing to use identity domains.

> Thanks,
> John

Best regards,
baolu