OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

virtio-dev message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [PATCH v3 0/4] Introduce aux. notifications and virtio-vhost-user


Hi,

This patch series introduces device and driver auxiliary notifications
as a new set of virtio device resources, as well as vhost-user device
backend that uses these resources.

Driver auxiliary notifications allow the device to send notifications
other than configuration changes and used buffer notifications to the
driver, these are optional and their meaning is **device-specific**.

Device auxiliary notifcations allow the driver to send notifcations
other than available buffer notifications to the device for example
through a device register, these are optional and their meaning is
**device-specific**.

These resources are used in the last patch by the virtio-vhost-user
device in order to send/receive notifications to/from the driver
regarding activity on the vhost-user virtqueues. By standardizing
these resources as standalone virtio device resources, other future
devices will be able to use them as well.

The last patch introduces the vhost-user device backend which facilitates
vhost-user device emulation through vhost-user protocol exchanges and
access to shared memory. Software-defined networking, storage, and other
I/O appliances can provide services through this device.

This device is based on Wei Wang's vhost-pci work. The virtio-vhost-user
device differs from vhost-pci because it is a single virtio
device type that exposes the vhost-user protocol instead of a family of
new virtio device types, one for each vhost-user device type.

A HTML version with the changes is available at [1].

For more information about virtio-vhost-user, see [2].

These patches are based on the work initially done by Stefan Hajnoczi [2]
and continued by Nikos Dragazis [3], [4].

A working prototype implementing this spec can be reproduced using
instructions in [5] utilizing QEMU [6] and DPDK [7].
This is also based on the work initially done by Stefan
and continued later by Nikos. The prototype code uses the terms
"doorbell"/"device-specific notification" and "master"/"slave" instead of
"device auxiliary notification"/"driver auxiliary notification" and
"frontend"/"backend". This is based on older work, however, their
functionality is the same. If these virtio-spec changes get approved,
I will refractor the patches for QEMU/DPDK and send them for review
according to the final patches in the respective mailing list.

Thanks and looking forward to your response!
Usama

[1] https://uarif1.github.io/vvu/v3/virtio-v1.2-cs01
[2] https://wiki.qemu.org/Features/VirtioVhostUser
[3] https://ndragazis.github.io/dpdk-vhost-vvu-demo.html
[4] https://lists.oasis-open.org/archives/virtio-dev/202005/msg00132.html
[5] https://uarif1.github.io/vvu/dpdk-vvu-instructions
[6] https://github.com/uarif1/qemu/tree/vvu
[7] https://github.com/uarif1/dpdk/tree/vvu
----------
v2->v3:
Mostly addressing comments made by Michael S. Tsirkin:
- Give a clearer relation between backend driver, backend device and frontend at
  beginning of the Vhost-user Device Backend section.
- change uuid to id.
- Add information about inflight memory.

v1->v2:
- Shortened device aux. notification section
- Make data width of device aux. notifications device specific and not
  limited to 2 bytes.
- Added information about the minimum number of MSIX vectors.
- Split virtio-mmio implementation of driver aux. notifications into 2
  registers, DeviceAuxNotificationIndex and DeviceAuxNotificationData.
- Made the shared memory section in virtio vhost-user clearer and added
  the shared memory would look like when
  VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS has been negotiated.

Usama Arif (4):
  content: Introduce driver/device auxiliary notifications
  content: Introduce driver/device aux. notification cfg type for PCI
  content: Introduce driver/device auxiliary notifications for MMIO
  vhost-user: add vhost-user device type

 conformance.tex       |  29 +++-
 content.tex           | 254 +++++++++++++++++++++++++++++-----
 introduction.tex      |   3 +
 virtio-vhost-user.tex | 309 ++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 554 insertions(+), 41 deletions(-)
 create mode 100644 virtio-vhost-user.tex

-- 
2.25.1



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]