[PATCH vhost 0/5] virtio_net: introduce api to enable/disable premapped mode for sq

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



As discussed:

http://lore.kernel.org/all/CACGkMEvq0No8QGC46U4mGsMtuD44fD_cfLcPaVmJ3rHYqRZxYg@xxxxxxxxxxxxxx

If virtio is in pre-mapped mode, the driver should manage the DMA info itself.

However, due to the indirect feature, the virtio-net driver may need to maintain
an excessive amount of DMA info. Therefore, we only enable pre-mapped mode for
the send queue (SQ) when af-xdp is bound to it. We have set a limit on the
amount of DMA info we manage. If the kernel stack or xdp tx/redirect attempts to
use more descriptors than this limit, virtnet_add_outbuf() will return an
-ENOMEM error. However, AF-XDP can continue working.

The last patch aims to demonstrate the logic of enabling pre-mapped mode when
af-xdp is bound to the SQ, and we can discuss it further.

Although the APIs are not used, this patch might belong in the final patch set
(virtio-net supports AF_XDP). But I hope the first four patches can be merged
first to reduce the number of patches in the final set.

Thanks.

Xuan Zhuo (5):
  virtio_ring: introduce vring_need_unmap_buffer
  virtio_ring: introduce dma map api for page
  virtio_ring: introduce virtqueue_dma_map_sg_attrs
  virtio_ring: virtqueue_set_dma_premapped() support to disable
  virtio_net: sq support premapped mode

 drivers/net/virtio_net.c     | 212 ++++++++++++++++++++++++++++++++++-
 drivers/virtio/virtio_ring.c | 118 ++++++++++++++++---
 include/linux/virtio.h       |  12 +-
 3 files changed, 319 insertions(+), 23 deletions(-)

--
2.32.0.3.g01195cf9f





[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux