On Sun, 2015-11-01 at 09:45 +0200, Shamir Rabinovitch wrote: > Not sure this use case is possible for Infiniband where application hold > the data buffers and there is no way to force application to re use the > buffer as suggested. > > This is why I think there will be no easy way to bypass the DMA mapping cost > for all use cases unless we allow applications to request bypass/pass through > DMA mapping (implicitly or explicitly).
But but but ... What I don't understand is how that brings you any safety. Basically, either your bridge has a bypass window, or it doesn't. (Or it has one and it's enabled or not, same thing). If you request the bypass on a per-mapping basis, you basically have to keep the window always enabled, unless you do some nasty refcounting of how many people have a bypass mapping in flight, but that doesn't seem useful. Thus you have already lost all protection from the device, since your entire memory is accessible via the bypass mapping. Which means what is the point of then having non-bypass mappings for other things ? Just to make things slower ? I really don't see what this whole "bypass on a per-mapping basis" buys you. Note that we implicitly already do that on powerpc, but not for those reasons, we do it based on the DMA mask, so that if your coherent mask is 32-bit but your dma mask is 64-bit (which is not an uncommon combination), we service the "coherent" requests (basically the long lifed dma allocs) from the remapped region and the "stream" requests (ie, map_page/map_sg) from the bypass. Cheers, Ben. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html