On Mon, 2012-06-04 at 14:15 +0930, Rusty Russell wrote: > > Something along those lines is also needed for remote processors > which > > access memory via an IOMMU (e.g. OMAP4's M3 and DSP). > > > > Allocating the memory via the DMA API will seamlessly configure the > > relevant IOMMU as needed, and will make the buffers accessible to > the > > remote processors. > > > > Thanks, > > Ohad. > > It seems quite sensible. The formal definition in the spec would be > good. In particular, defining DMA_MEM in a generic (non-Linux) way > will be interesting. I think we could do a bit better... We need to dbl check if all the archs we care about use the dma_ops abstraction, but if they do, then we can remove the conditional and just use the dma_* functions everywhere, and have virtio-pci itself tweak the dma_ops pointer in struct device. The default would be to swap the normal PCI one that the arch code has put there with some "null" ops to match existing virtio, and we could then use a negociated capability to avoid that behaviour. It's important to keep in mind that for KVM, in most cases we want to keep the bypass of the iommu, simply because it's always going to be faster than emulating one & mapping/unmapping things to/from it. Cheers, Ben. _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization