[v5,00/15] Vhost: add support to packed ring layout

Message ID 20180622134327.18973-1-maxime.coquelin@redhat.com (mailing list archive)


Maxime Coquelin June 22, 2018, 1:43 p.m. UTC
  This series is a handover from Jen's "[PATCH v4 00/20]
implement packed virtqueues", which only implements the
vhost side. Virtio PMD implementation will follow in a 
next series.

The series applies on top of previous reworks I posted
during this cycle that merges mergeable and non-mergeable
receive paths, and refactors transmit path to re-use
vector buffers.

I haven't run performance tests for now as the Virtio PMD
side isn't ready.

The series has been tested with Tiwei's series implementing
packed ring support to Kernel's virtio-net driver, and
with Wei series implementing the Qemu side.

To test it, I have used testpmd on host side with a vhost
vdev and a tap vdev forwarding to each other. Transferts
of big random files have been done in both ways with
integrity verified.

Tests have been run with Rx mrg ON/OFF and events suppression

Tests have also been run with legacy spli ring layout to
ensure no regression have been introduced.

Jens Freimann (2):
  vhost: add virtio packed virtqueue defines
  vhost: add helpers for packed virtqueues

Maxime Coquelin (12):
  vhost: clear shadow used table index at flush time
  vhost: make indirect desc table copy desc type agnostic
  vhost: clear batch copy index at copy time
  vhost: extract split ring handling from Rx and Tx functions
  vhost: append shadow used ring function names with split
  vhost: add shadow used ring support for packed rings
  vhost: create descriptor mapping function
  vhost: add vector filling support for packed ring
  vhost: add Rx support for packed ring
  vhost: add Tx support for packed ring
  vhost: add notification for packed ring
  vhost: advertize packed ring layout support

Yuanhan Liu (1):
  vhost: vring address setup for packed queues

 lib/librte_vhost/vhost.c         | 108 +++++-
 lib/librte_vhost/vhost.h         | 105 +++++-
 lib/librte_vhost/vhost_user.c    | 114 +++++-
 lib/librte_vhost/virtio-packed.h |  49 +++
 lib/librte_vhost/virtio_net.c    | 770 ++++++++++++++++++++++++++++++---------
 5 files changed, 940 insertions(+), 206 deletions(-)
 create mode 100644 lib/librte_vhost/virtio-packed.h