[dpdk-dev] [PATCH v7 00/10] vhost: support inflight share memory protocol feature

Tiwei Bie tiwei.bie at intel.com
Wed Sep 25 16:25:33 CEST 2019


> [PATCH v7 00/10] vhost: support inflight share memory protocol feature

This should be v8. Please increase the version number when
sending a new series.

Thanks,
Tiwei

On Fri, Sep 20, 2019 at 08:00:52PM +0800, Jin Yu wrote:
> This patches introduces two new messages VHOST_USER_GET_INFLIGHT_FD
> and VHOST_USER_SET_INFLIGHT_FD to support transferring a shared
> buffer between qemu and backend.
> Now It can both support split and packed ring. The example code show
> how these API work. The test has passed.
> 
> How to test the example:
> 1, Qemu need two patches.
> https://patchwork.kernel.org/patch/10766813/
> https://patchwork.kernel.org/patch/10861411/(QEMU merged)
> it also needs some manual modifications:
> we should confirm that before we send get inflight we have already
> sent the set features but it seems Qemu didn't do like this. So we
> manually revise this, we can add below code in vhost_dev_get_inflight
>     int r;
> 
>     r = vhost_dev_set_features(dev, dev->log_enabled);
>     if (r < 0) {
>         return -errno;
>     }
> before get_inflight_fd.
> 2, Guest OS version >= 5.0
> 3, run the example
> 4, run the qemu with vhost-user-blk-pci.
>  eg:
>         -chardev socket,id=spdk_vhost_blk0,reconnect=1,path=xxxx\
>         -device vhost-user-blk-pci,ring_packed=on,chardev=spdk_vhost_blk0,num-queues=1\
> 5, run fio in the guest
> 6, kill the example and run again.
> 7, the fio in the guest should continue run without errors.
> 
> Jin Yu (10):
>   vhost: add the inflight description
>   vhost: add packed ring
>   vhost: add the inflight structure
>   vhost: add two new messages to support a shared buffer
>   vhost: checkout the resubmit inflight information
>   vhost: add the APIs to operate inflight ring
>   vhost: add APIs for user getting inflight ring
>   vhost: add vring functions packed ring support
>   vhost: add an API for judging vq format
>   vhost: add vhost-user-blk example which support inflight
> 
>  examples/vhost_blk/Makefile            |   67 ++
>  examples/vhost_blk/blk.c               |  125 +++
>  examples/vhost_blk/blk_spec.h          |   95 ++
>  examples/vhost_blk/meson.build         |   20 +
>  examples/vhost_blk/vhost_blk.c         | 1313 ++++++++++++++++++++++++
>  examples/vhost_blk/vhost_blk.h         |  116 +++
>  examples/vhost_blk/vhost_blk_compat.c  |  195 ++++
>  lib/librte_vhost/rte_vhost.h           |  250 ++++-
>  lib/librte_vhost/rte_vhost_version.map |    9 +
>  lib/librte_vhost/vhost.c               |  416 +++++++-
>  lib/librte_vhost/vhost.h               |   16 +
>  lib/librte_vhost/vhost_user.c          |  470 ++++++++-
>  lib/librte_vhost/vhost_user.h          |   12 +-
>  13 files changed, 3091 insertions(+), 13 deletions(-)
>  create mode 100644 examples/vhost_blk/Makefile
>  create mode 100644 examples/vhost_blk/blk.c
>  create mode 100644 examples/vhost_blk/blk_spec.h
>  create mode 100644 examples/vhost_blk/meson.build
>  create mode 100644 examples/vhost_blk/vhost_blk.c
>  create mode 100644 examples/vhost_blk/vhost_blk.h
>  create mode 100644 examples/vhost_blk/vhost_blk_compat.c
> 
> -- 
> 2.17.2
> 


More information about the dev mailing list