Messages in this thread | | | Subject | Re: [PATCH 3/5] Move dma_ops from archdata into struct device | From | Bart Van Assche <> | Date | Fri, 9 Dec 2016 11:46:30 -0800 |
| |
On 12/09/2016 11:13 AM, David Woodhouse wrote: > On Fri, 2016-12-09 at 19:22 +0100, Christoph Hellwig wrote: >> We'll need a bit of a wieder audience for this I think.. >> >> On Wed, Dec 07, 2016 at 05:11:28PM -0800, Bart Van Assche wrote: >>> Additionally, introduce set_dma_ops(). A later patch will introduce a >>> call to that function in the RDMA drivers that will be modified to use >>> dma_noop_ops. >> >> This looks good to me, and we had a lot of talk about this for other >> purposes for a while. > > Hm, I'm not convinced we want per-device dma_ops. What we want is per- > device IOMMU ops, and any dma_ops are just a generic or platform- > specific (in some cases) wrapper around those. We shouldn't normally > need per-device DMA ops at all.
Hello David,
Can you recommend an approach for e.g. the qib driver (drivers/infiniband/hw/qib)? That driver uses the CPU (PIO) instead of DMA to transfer data to a PCIe device. Sorry but I don't see how per-device IOMMU ops would allow to avoid that e.g. a cache flush is triggered before PIO starts.
Bart.
| |