Re: [PATCH] drm/xen-front: Make shmem backed display buffer coherent

From: Daniel Vetter
Date: Thu Dec 20 2018 - 13:29:54 EST


On Thu, Dec 20, 2018 at 6:39 PM Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
>
> On Thu, Dec 20, 2018 at 05:49:39PM +0200, Oleksandr Andrushchenko wrote:
> > This is the only patch [1], no series. And at the moment I think
> > there is nothing to review as I am not sure how to deal with those
> > shmem pages: this patch is rather to start a discussion on how shmem
> > pages can be flushed on ARM (the only workaround I have so far is
> > in this patch which uses DMA API). This is where I am looking for
> > some advice, so I can implement the patch the right way.
>
> shmem is basically page cache. So you need to use the DMA streaming
> API (dma_map_*) to map it for DMA. You need to make sure no one
> access the kernel mapping at the same time as you do DMA to it,
> so the pages should be locked. This is how the normal file system
> I/O path works.

I wasn't around back then, but afaiui drm uses shmem because that was
the only way mm folks let us have swappable memory. We proposed a
gemfs a while ago to be able to mix up our own allocator with that,
wasn't approved.

What we most definitely not want to end up with though is actually
streaming dma, because with that all the zero copy buffer sharing
tricks become pointless. There's pretty epic amounts of hacks to work
around this, I have no idea what's supposed to give here.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch