[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
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