All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v10 0/9] implement packed virtqueues
@ 2018-11-02  9:07 Jens Freimann
  2018-11-02  9:07 ` [PATCH v10 1/9] net/virtio: vring init for packed queues Jens Freimann
                   ` (9 more replies)
  0 siblings, 10 replies; 13+ messages in thread
From: Jens Freimann @ 2018-11-02  9:07 UTC (permalink / raw)
  To: dev; +Cc: tiwei.bie, maxime.coquelin, Gavin.Hu

This is a basic implementation of packed virtqueues as specified in the
Virtio 1.1 draft. A compiled version of the current draft is available
at https://github.com/oasis-tcs/virtio-docs.git (or as .pdf at
https://github.com/oasis-tcs/virtio-docs/blob/master/virtio-v1.1-packed-wd10.pdf

A packed virtqueue is different from a split virtqueue in that it
consists of only a single descriptor ring that replaces available and
used ring, index and descriptor pointers.

Each descriptor is readable and writable and has a flags field. These flags
will mark if a descriptor is available or used.  To detect new available descriptors
even after the ring has wrapped, device and driver each have a
single-bit wrap counter that is flipped from 0 to 1 and vice versa every time
the last descriptor in the ring is used/made available.

v9-v10:
 * don't mix index into buffer list and descriptors
 * whitespace and formatting issues
 * remove "VQ:" in dump virtqueue patch
 * add extra packed vring struct to virtqueue and change function
   prototypes and code accordingly
 * move wrap_counters to virtqueue
 * make if-conditions for packed and !packed more clear in
   set_rxtx_funcs()
 * initialize wrap counters in first patch, instead of rx and tx
   implementation patch
 * make virtio-user not supported with packed virtqueues, to
   be fixed in other patch set?

v8-v9:
 * fix virtio_ring_free_chain_packed() to handle descriptors
   correctly in case of out-of-order
 * fix check in virtqueue_xmit_cleanup_packed() to improve performance

v7->v8:
 * move desc_is_used change to correct patch
 * remove trailing newline
 * correct xmit code, flags update and memory barrier
 * move packed desc init to dedicated function, split
   and packed variant


Jens Freimann (9):
  net/virtio: vring init for packed queues
  net/virtio: add packed virtqueue defines
  net/virtio: add packed virtqueue helpers
  net/virtio: dump packed virtqueue data
  net/virtio: implement transmit path for packed queues
  net/virtio: implement receive path for packed queues
  net/virtio: add virtio send command packed queue support
  net/virtio: enable packed virtqueues by default
  net/virtio-user: disable packed virtqueues when CTRL_VQ enabled

 drivers/net/virtio/virtio_ethdev.c            | 202 +++++--
 drivers/net/virtio/virtio_ethdev.h            |   5 +
 drivers/net/virtio/virtio_pci.h               |   7 +
 drivers/net/virtio/virtio_ring.h              |  64 +-
 drivers/net/virtio/virtio_rxtx.c              | 561 +++++++++++++++++-
 .../net/virtio/virtio_user/virtio_user_dev.c  |   1 +
 drivers/net/virtio/virtqueue.c                |  22 +
 drivers/net/virtio/virtqueue.h                |  69 ++-
 8 files changed, 859 insertions(+), 72 deletions(-)

-- 
2.17.1

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2018-11-28 17:25 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-02  9:07 [PATCH v10 0/9] implement packed virtqueues Jens Freimann
2018-11-02  9:07 ` [PATCH v10 1/9] net/virtio: vring init for packed queues Jens Freimann
2018-11-02 14:00   ` Tiwei Bie
2018-11-02  9:07 ` [PATCH v10 2/9] net/virtio: add packed virtqueue defines Jens Freimann
2018-11-02  9:07 ` [PATCH v10 3/9] net/virtio: add packed virtqueue helpers Jens Freimann
2018-11-02  9:07 ` [PATCH v10 4/9] net/virtio: dump packed virtqueue data Jens Freimann
2018-11-02  9:07 ` [PATCH v10 5/9] net/virtio: implement transmit path for packed queues Jens Freimann
2018-11-02  9:07 ` [PATCH v10 6/9] net/virtio: implement receive " Jens Freimann
2018-11-02  9:07 ` [PATCH v10 7/9] net/virtio: add virtio send command packed queue support Jens Freimann
2018-11-28 17:25   ` Maxime Coquelin
2018-11-02  9:07 ` [PATCH v10 8/9] net/virtio: enable packed virtqueues by default Jens Freimann
2018-11-02  9:07 ` [PATCH v10 9/9] net/virtio-user: disable packed virtqueues when CTRL_VQ enabled Jens Freimann
2018-11-02 14:02 ` [PATCH v10 0/9] implement packed virtqueues Tiwei Bie

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.