On 14/02/2019 18:57, Christoph Hellwig wrote:
> On Thu, Feb 14, 2019 at 07:03:38AM +0100, Juergen Gross wrote:
>>> The thing which is different between Xen PV guests and most others (all
>>> others(?), now that Lguest and UML have been dropped) is that what Linux
>>> thinks of as PFN $N isn't necessarily adjacent to PFN $N+1 in system
>>> physical address space.
>>>
>>> Therefore, code which has a buffer spanning a page boundary can't just
>>> convert a pointer to the buffer into a physical address, and hand that
>>> address to a device.  You generally end up with either memory corruption
>>> (DMA hitting the wrong page allocated to the guest), or an IOMMU fault
>>> (DMA hitting a pages which isn't allocated to the guest).
> 
> The Linux DMA API allows for dma_map_page / dma_map_single calls to
> spawn 4k boundaries.  If Xen doesn't support that it will have to bounce
> buffer for that case (and get horrible performance).
> 
> But the latter text seems to agree with that.  So what is the actual
> problem that started this discussion?
> 

See https://lists.xen.org/archives/html/xen-devel/2019-02/threads.html#00818


Juergen

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to