Re: [Xen-devel] [PATCH] Revert "swiotlb: remove SWIOTLB_MAP_ERROR"

From: Christoph Hellwig
Date: Wed Mar 13 2019 - 14:33:03 EST


On Fri, Mar 08, 2019 at 05:25:57PM +0000, Julien Grall wrote:
> In the common case, Dom0 also contains the PV backend drivers. Those
> drivers may directly use the guest buffer in the DMA request (so a copy is
> avoided). To avoid using a bounce buffer too much, xen-swiotlb will find
> the host physical address associated to the guest buffer and will use it to
> compute the DMA address.
>
> While Dom0 kernel may only deal with 32-bit physical address, the
> hypervisor can still deal with up to 40-bit physical address. This means
> the guest memory can be allocated above the 4GB threshold. Hence why the
> dma_addr_t is always 64-bit with CONFIG_XEN=y.

This at least makes some sense. But is it really so much better to
avoid having a 64-bit phys_addr_t?