Re: [PATCH] lib/scatterlist: Provide a DMA page iterator

From: Christian KÃnig
Date: Tue Jan 15 2019 - 09:25:03 EST


Am 15.01.19 um 15:17 schrieb Thomas Hellstrom:
Hi, Christoph,

On Mon, 2019-01-14 at 10:48 +0100, Christoph Hellwig wrote:
On Thu, Jan 10, 2019 at 04:42:18PM -0700, Jason Gunthorpe wrote:
Changes since the RFC:
- Rework vmwgfx too [CH]
- Use a distinct type for the DMA page iterator [CH]
- Do not have a #ifdef [CH]
ChristophH: Will you ack?
This looks generally fine.

Are you still OK with the vmwgfx reworking, or should we go back to
the original version that didn't have the type safety so this
driver
can be left broken?
I think the map method in vmgfx that just does virt_to_phys is
pretty broken. Thomas, can you check if you see any performance
difference with just doing the proper dma mapping, as that gets the
driver out of interface abuse land?
The performance difference is not really the main problem here. The
problem is that even though we utilize the streaming DMA interface, we
use it only since we have to for DMA-Remapping and assume that the
memory is coherent. To be able to be as compliant as possible and ditch
the virt-to-phys mode, we *need* a DMA interface flag that tells us
when the dma_sync_for_xxx are no-ops. If they aren't we'll refuse to
load for now. I'm not sure, but I think also nouveau and radeon suffer
from the same issue.

Yeah, indeed. Bounce buffers are an absolute no-go for GPUs.

If the DMA API finds that a piece of memory is not directly accessible by the GPU we need to return an error and not try to use bounce buffers behind the surface.

That is something which always annoyed me with the DMA API, which is otherwise rather cleanly defined.

Christian.


While we're at it I think we need to merge my series in this area
for 5.0, because without that the driver is already broken. Where
should we merge it?
I can merge it through vmwgfx/drm-fixes. There is an outstanding issue
with patch 3. Do you want me to fix that up?

Thanks,
Thomas


_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel