Re: [PATCH v3 1/3] iommu/vt-d: Allow 32bit devices to uses DMA domain

From: Lu Baolu
Date: Fri Apr 17 2020 - 08:49:59 EST


Hi Christoph,

On 2020/4/17 14:50, Christoph Hellwig wrote:
On Thu, Apr 16, 2020 at 03:40:38PM +0800, Lu Baolu wrote:
description. I'd need to look at the final code, but it seems like
this will still cause bounce buffering instead of using dynamic
mapping, which still seems like an awful idea.

Yes. If the user chooses to use identity domain by default through
kernel command, identity domain will be applied for all devices. For
those devices with limited addressing capability, bounce buffering will
be used when they try to access the memory beyond their address
capability. This won't cause any kernel regression as far as I can see.

Switching domain during runtime with drivers loaded will cause real
problems as I said in the commit message. That's the reason why I am
proposing to remove it. If we want to keep it, we have to make sure that
switching domain for one device should not impact other devices which
share the same domain with it. Furthermore, it's better to implement it
in the generic layer to keep device driver behavior consistent on all
architectures.

I don't disagree with the technical points. What I pointed out is that

a) the actual technical change is not in the commit log, which it
should be

Sorry! I should make the commit message more comprehensive.

b) that I still think taking away the ability to dynamically map
devices in the identify domain after all the time we allowed for
that is going to cause nasty regressions.


This change just asks Intel IOMMU driver to use the default domain
specified by the generic default domain framework, just like what other
vendor iommu drivers do. I understand that some users wants to use DMA
domain for some specific devices when the default domain type is
identity, and vice versa, use identity domain for some devices while
default one is DMA. I think Sai's patch series posted at

https://www.spinics.net/lists/iommu/msg41680.html

is a good start. It changes the default domain with all device drivers
unbound in the generic layer, hence every vendor iommu driver could
benefit from it.

Best regards,
baolu