On 9/23/26 05:55, Christoph Hellwig wrote:
On Tue, Sep 22, 2026 at 02:37:08PM +0100, Pavel Begunkov wrote:
Sashiko had a few comments, which I think are correct - if we use
dma_map_sg to map the data, we need to use the sync_sg APIs to
transfer ownership. That only matters on non-coherent architectures
with MMU, but we need to get it right.
I've seen that and fixed everything locally that should be fixed,
apart from the sync. I wonder what we can do about that? I can
somehow replace it with the sg variant for now, but sync'ing the
entire possibly multi-GB mapping for, let's say, a 512B I/O, sounds
not wise.
If we'd want to fix this for real we'd need to add an offset to the
sync by sg methods. Or move away from scatterlists in dma-buf, given
that they are a horrible API. All of these are bigger projects,
though. So for now I think you'd want to do the sync all, and have
the people who run high-performance io_uring code on non-coherent
platforms suffer.
And I can think of another place that does mix sync_single
with sgs.
Which one?
All the recent networking zero-copy / dma-buf apis.
--
Pavel Begunkov