[PATCH 0/2] virtio: abstract virtqueue related methods

From: zhenwei pi
Date: Fri May 12 2023 - 05:48:28 EST


Hi,

3 weeks ago, I posted a proposal 'Virtio Over Fabrics':
https://lists.oasis-open.org/archives/virtio-comment/202304/msg00442.html

Jason and Stefan pointed out that a non-vring based virtqueue has a
chance to overwrite virtqueue instead of using vring virtqueue.

Then I try to abstract virtqueue related methods in this series, the
details changes see the comment of patch 'virtio: abstract virtqueue related methods'.

Something is still remained:
- __virtqueue_break/__virtqueue_unbreak is supposed to use by internal
virtio core, I'd like to rename them to vring_virtqueue_break
/vring_virtqueue_unbreak. Is this reasonable?
- virtqueue_get_desc_addr/virtqueue_get_avail_addr/virtqueue_get_used_addr
/virtqueue_get_vring is vring specific, I'd like to rename them like
vring_virtqueue_get_desc_addr. Is this reasonable?
- there are still some functions in virtio_ring.c with prefix *virtqueue*,
for example 'virtqueue_add_split', just keep it or rename it to
'vring_virtqueue_add_split'?

zhenwei pi (2):
virtio: abstract virtqueue related methods
tools/virtio: implement virtqueue in test

drivers/virtio/virtio.c | 362 ++++++++++++++++++++++++++++++++++
drivers/virtio/virtio_ring.c | 282 +++++----------------------
include/linux/virtio.h | 29 +++
tools/virtio/Makefile | 4 +-
tools/virtio/linux/virtio.h | 30 +++
tools/virtio/virtqueue.c | 367 +++++++++++++++++++++++++++++++++++
6 files changed, 842 insertions(+), 232 deletions(-)
create mode 100644 tools/virtio/virtqueue.c

--
2.20.1