On Wed, 30 Mar 2022 16:38:18 +0800, Jason Wang <jasowang at redhat.com>
wrote:> On Wed, Mar 30, 2022 at 2:59 PM Xuan Zhuo <xuanzhuo at
linux.alibaba.com> wrote:
> >
> > On Wed, 30 Mar 2022 14:56:17 +0800, Jason Wang <jasowang at
redhat.com> wrote:
> > > On Wed, Mar 30, 2022 at 2:34 PM Michael S. Tsirkin <mst at
redhat.com> wrote:
> > > >
> > > > On Thu, Feb 24, 2022 at 07:03:53PM +0800, Xuan Zhuo wrote:
> > > > > virtqueue_add() only supports virtual addresses, dma is
completed in
> > > > > virtqueue_add().
> > > > >
> > > > > In some scenarios (such as the AF_XDP scenario), DMA is
completed in advance, so
> > > > > it is necessary for us to support passing the DMA
address to virtqueue_add().
> > > >
> > > > I picked up a couple of patches. Others are waiting for some
acks
> > > > (Jason?) and improved commit logs for documentation.
> > >
> > > I will review them.
> >
> > hi, the core code of premapped, I will merge it into 'virtio pci
support
> > VIRTIO_F_RING_RESET' because this function will be used when
reusing the buffer
> > after resize.
>
> I still prefer not to do that.
>
> We can make rest work for resize first and add pre mapping on top. It
> will simplify the review.
Yes, I am also worried about the review problem, the number of my local resize
patch has reached 44 (including reuse bufs).
hi, Michael, can we implement resize on top of v8 first? (drop unused bufs
directly)
Then we implement premmapd and reuse the bufs after resize.
We need to get the address (DMA address) and len from the reset ring and submit
it to the new vq through virtqueue_add(). So let virtqueue_add() support
premapped first.
Thanks.
>
> Thanks
>
> >
> > Thanks.
> >
> >
> > >
> > > Thanks
> > >
> > > >
> > > > Thanks!
> > > >
> > > > > v2:
> > > > > 1. rename predma -> premapped
> > > > > 2. virtio net xdp tx use virtio dma api
> > > > >
> > > > > v1:
> > > > > 1. All sgs requested at one time are required to be
unified PREDMA, and several
> > > > > of them are not supported to be PREDMA
> > > > > 2. virtio_dma_map() is removed from this patch set
and will be submitted
> > > > > together with the next time AF_XDP supports
virtio dma
> > > > > 3. Added patch #2 #3 to remove the check for flags
when performing unmap
> > > > > indirect desc
> > > > >
> > > > > Xuan Zhuo (9):
> > > > > virtio_ring: rename vring_unmap_state_packed() to
> > > > > vring_unmap_extra_packed()
> > > > > virtio_ring: remove flags check for unmap split
indirect desc
> > > > > virtio_ring: remove flags check for unmap packed
indirect desc
> > > > > virtio_ring: virtqueue_add() support premapped
> > > > > virtio_ring: split: virtqueue_add_split() support
premapped
> > > > > virtio_ring: packed: virtqueue_add_packed() support
premapped
> > > > > virtio_ring: add api virtio_dma_map() for advance dma
> > > > > virtio_ring: introduce
virtqueue_add_outbuf_premapped()
> > > > > virtio_net: xdp xmit use virtio dma api
> > > > >
> > > > > drivers/net/virtio_net.c | 42 +++++-
> > > > > drivers/virtio/virtio_ring.c | 280
++++++++++++++++++++++++++---------
> > > > > include/linux/virtio.h | 12 ++
> > > > > 3 files changed, 254 insertions(+), 80 deletions(-)
> > > > >
> > > > > --
> > > > > 2.31.0
> > > >
> > >
> >
>