On Thu, Jan 26, 2017 at 12:18 PM, Joerg Roedel <j...@8bytes.org> wrote: > On Tue, Jan 24, 2017 at 08:42:23PM +0530, Sricharan wrote: >> Thanks for this series. We had a case with the GPU. >> The GPU's iommu was setup by kernel and the GPU >> also does dynamic updates for on-the-fly switching between >> process pagetables. GPU driver was not using DMA domain and >> the GPU's firmware was always expecting to run out of contextbank >> '0' (although not correct) , which was not the case after the DMA domain >> was made default as '0' was getting allocated for DMA domain and >> there were concerns about reusing the DMA domain as well. >> Now with this series, looks there is an way out of that that can be tried. >> >> So should the default domain not be per device specific selectable ? > > Note that iommu-drivers can request direct-mapping for any given device > on its initializtion. This is used on x86 for devices that need a 1-1 > mapping for some reason. > > Also device drivers can use the iommu-api and assign their own domain to > a device, which allows them to manage the dma address space on their > own.
Part of the problem is that dev->archdata.dma_ops gets wired up to iommu_dma_ops. Which isn't so bad on it's own, except that cache ops are not exposed to drivers, forcing us to use dma-mapping API (dma_map_sg, etc) for cache operations. Possibly we should just expose cache op's to drivers bypass this abuse of dma-mapping. btw, Will, we definitely want this to *not* rely on kcmdline for the gpu with it's own private iommu case.. BR, -R _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu