Re: [PATCH] virtio_ring: skip cpu sync when mapping fails

Jason Wang
2024-11-13T01:35:54Z

On Wed, Nov 13, 2024 at 5:46 AM Michael S. Tsirkin <mst@redhat.com> wrote:
>
> On Mon, Nov 11, 2024 at 04:36:52PM +0800, Jason Wang wrote:
> > On Mon, Nov 11, 2024 at 3:30 PM Michael S. Tsirkin <mst@redhat.com> wrote:
> > >
> > > On Mon, Nov 11, 2024 at 10:55:38AM +0800, Jason Wang wrote:
> > > > There's no need to sync DMA for CPU on mapping errors. So this patch
> > > > skips the CPU sync in the error handling path of DMA mapping.
> > > >
> > > > Signed-off-by: Jason Wang <jasowang@redhat.com>
> > >
> > > DMA sync is idempotent.
> > > Extra work for slow path. Why do we bother?
> >
> > dma_map_sg() did this, since current virtio hack sg mappings to per
> > page mapping, we lose such optimization.
> >
> > Actually the path is not necessarily slowpath in some setups like
> > swiotlb or VDUSE.
> >
> > Thanks
>
> I don't get how it's not a slowpath. Example?

I'm not sure how to define slowpath but a possible example is when we
reach the swiotlb limitation, in this case. vring_map_one_sg() can
fail easily.

Thanks

>
> --
> MST
>
>