Re: [PATCH] vduse: implement DMA sync callbacks

From: Maxime Coquelin
Date: Wed Feb 21 2024 - 03:48:04 EST


Hello Christoph,

On 2/20/24 10:01, Christoph Hellwig wrote:
On Mon, Feb 19, 2024 at 06:06:06PM +0100, Maxime Coquelin wrote:
Since commit 295525e29a5b ("virtio_net: merge dma
operations when filling mergeable buffers"), VDUSE device
require support for DMA's .sync_single_for_cpu() operation
as the memory is non-coherent between the device and CPU
because of the use of a bounce buffer.

This patch implements both .sync_single_for_cpu() and
sync_single_for_device() callbacks, and also skip bounce
buffer copies during DMA map and unmap operations if the
DMA_ATTR_SKIP_CPU_SYNC attribute is set to avoid extra
copies of the same buffer.

vduse really needs to get out of implementing fake DMA operations for
something that is not DMA.


I wasn't involved when vduse was initially submitted, I don't know if
any alternative was considered at that time.

Do you have something specific in mind we could do to have VDUSE not
implementing DMA ops, knowing other vDPA devices rely on DMA?

Thanks,
Maxime