Re: [Xen-devel] [PATCH 07/11] swiotlb-xen: provide a single page-coherent.h header

From: Julien Grall
Date: Sat Aug 17 2019 - 14:20:50 EST


Hi Christoph,

On 8/17/19 7:50 AM, Christoph Hellwig wrote:
On Fri, Aug 16, 2019 at 11:40:43PM +0100, Julien Grall wrote:
I am not sure I agree with this rename. The implementation of the helpers
are very Arm specific as this is assuming Dom0 is 1:1 mapped.

This was necessary due to the lack of IOMMU on Arm platforms back then.
But this is now a pain to get rid of it on newer platform...

So if you look at the final version of the header after the whole
series, what assumes a 1:1 mapping? It all just is

if (pfn_valid())
local cache sync;
else
call into the arch code;

In the context of Xen Arm, the dev_addr is a host physical address. From my understanding pfn_valid() is dealing with a guest physical frame.

Therefore by passing PFN_DOWN(dev_addr) in argument you assume that the host and guest address spaces are the same.


are you concerned that the local cache sync might have to be split
up more for a non-1:1 map in that case? We could just movea
the xen_dma_* routines into the arch instead of __xen_dma, but it
really helps to have a common interface header.
Moving xen_dma_* routines into the arch would be a good option. Although, I would still consider a stub version for arch not requiring specific DMA.

Cheers,

--
Julien Grall