Thread (27 messages) 27 messages, 4 authors, 2018-08-16

[PATCH v3 4/6] iommu/io-pgtable-arm: add support for non-strict mode

From: Will Deacon <hidden>
Date: 2018-08-14 08:34:57
Also in: linux-iommu, lkml

On Tue, Aug 14, 2018 at 04:33:41PM +0800, Leizhen (ThunderTown) wrote:
On 2018/8/6 9:32, Yang, Shunyong wrote:
quoted
On 2018/7/26 22:37, Robin Murphy wrote:
quoted
Because DMA code is not the only caller of iommu_map/unmap. It's 
perfectly legal in the IOMMU API to partially unmap a previous mapping 
such that a block entry needs to be split. The DMA API, however, is a 
lot more constrined, and thus by construction the iommu-dma layer will 
never generate a block-splitting iommu_unmap() except as a result of 
illegal DMA API usage, and we obviously do not need to optimise for that 
(you will get a warning about mismatched unmaps under dma-debug, but 
it's a bit too expensive to police in the general case).
When I was reading the code around arm_lpae_split_blk_unmap(), I was
curious in which scenario a block will be split. Now with your comments
"Because DMA code is not the only caller of iommu_map/unmap", it seems
depending on the user.

Would you please explain this further? I mean besides DMA, which user
will use iommu_map/umap and how it split a block.
I also think that arm_lpae_split_blk_unmap() scenario is not exist, maybe
we should remove it, and give a warning for this wrong usage.
Can't it happen with VFIO?

Will
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help