[Qemu-devel] [PATCH v2 0/4] *** Introduce a new vhost-user-blk host device to Qemu ***

Changpeng Liu posted 4 patches 6 years, 8 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1502359951-29160-1-git-send-email-changpeng.liu@intel.com
Test FreeBSD passed
Test checkpatch passed
Test docker passed
Test s390x passed
There is a newer version of this series
.gitignore                              |   1 +
Makefile                                |   3 +
Makefile.objs                           |   2 +
configure                               |  11 +
contrib/libvhost-user/libvhost-user.c   |  51 +++
contrib/libvhost-user/libvhost-user.h   |  14 +
contrib/vhost-user-blk/Makefile.objs    |   1 +
contrib/vhost-user-blk/vhost-user-blk.c | 735 ++++++++++++++++++++++++++++++++
docs/interop/vhost-user.txt             |  31 ++
hw/block/Makefile.objs                  |   3 +
hw/block/vhost-user-blk.c               | 360 ++++++++++++++++
hw/virtio/vhost-user.c                  |  86 ++++
hw/virtio/vhost.c                       |  63 +++
hw/virtio/virtio-pci.c                  |  55 +++
hw/virtio/virtio-pci.h                  |  18 +
include/hw/virtio/vhost-backend.h       |   8 +
include/hw/virtio/vhost-user-blk.h      |  40 ++
include/hw/virtio/vhost.h               |  16 +
18 files changed, 1498 insertions(+)
create mode 100644 contrib/vhost-user-blk/Makefile.objs
create mode 100644 contrib/vhost-user-blk/vhost-user-blk.c
create mode 100644 hw/block/vhost-user-blk.c
create mode 100644 include/hw/virtio/vhost-user-blk.h
[Qemu-devel] [PATCH v2 0/4] *** Introduce a new vhost-user-blk host device to Qemu ***
Posted by Changpeng Liu 6 years, 8 months ago
Althrough virtio scsi specification was designed as a replacement for virtio_blk,
there are still many users using virtio_blk. Qemu 2.9 introduced a new device
vhost user scsi which can process I/O in user space for virtio_scsi, this commit
introduces a new vhost user block host device, which can support virtio_blk in
Guest OS, and I/O processing in another I/O target.

Due to the limitation for virtio_blk specification, virtio_blk device cannot get
block information such as capacity, block size etc via the specification, several
new vhost user messages were added to support deliver virtio config space
information between Qemu and I/O target, VHOST_USER_GET_CONFIG/VHOST_USER_SET_CONFIG
messages used for get/set config space from/to I/O target, VHOST_USER_SET_CONFIG_FD
was added for event notifier in case the change of virtio config space. Also, those
messages can be used for vhost device live migration as well.

Changpeng Liu (4):
  vhost-user: add new vhost user messages to support virtio config space
  vhost-user-blk: introduce a new vhost-user-blk host device
  contrib/libvhost-user: enable virtio config space messages
  contrib/vhost-user-blk: introduce a vhost-user-blk sample application

 .gitignore                              |   1 +
 Makefile                                |   3 +
 Makefile.objs                           |   2 +
 configure                               |  11 +
 contrib/libvhost-user/libvhost-user.c   |  51 +++
 contrib/libvhost-user/libvhost-user.h   |  14 +
 contrib/vhost-user-blk/Makefile.objs    |   1 +
 contrib/vhost-user-blk/vhost-user-blk.c | 735 ++++++++++++++++++++++++++++++++
 docs/interop/vhost-user.txt             |  31 ++
 hw/block/Makefile.objs                  |   3 +
 hw/block/vhost-user-blk.c               | 360 ++++++++++++++++
 hw/virtio/vhost-user.c                  |  86 ++++
 hw/virtio/vhost.c                       |  63 +++
 hw/virtio/virtio-pci.c                  |  55 +++
 hw/virtio/virtio-pci.h                  |  18 +
 include/hw/virtio/vhost-backend.h       |   8 +
 include/hw/virtio/vhost-user-blk.h      |  40 ++
 include/hw/virtio/vhost.h               |  16 +
 18 files changed, 1498 insertions(+)
 create mode 100644 contrib/vhost-user-blk/Makefile.objs
 create mode 100644 contrib/vhost-user-blk/vhost-user-blk.c
 create mode 100644 hw/block/vhost-user-blk.c
 create mode 100644 include/hw/virtio/vhost-user-blk.h

-- 
1.9.3


Re: [Qemu-devel] [PATCH v2 0/4] *** Introduce a new vhost-user-blk host device to Qemu ***
Posted by Michael S. Tsirkin 6 years, 8 months ago
On Thu, Aug 10, 2017 at 06:12:27PM +0800, Changpeng Liu wrote:
> Althrough virtio scsi specification was designed as a replacement for virtio_blk,
> there are still many users using virtio_blk. Qemu 2.9 introduced a new device
> vhost user scsi which can process I/O in user space for virtio_scsi, this commit
> introduces a new vhost user block host device, which can support virtio_blk in
> Guest OS, and I/O processing in another I/O target.
> 
> Due to the limitation for virtio_blk specification, virtio_blk device cannot get
> block information such as capacity, block size etc via the specification, several
> new vhost user messages were added to support deliver virtio config space
> information between Qemu and I/O target, VHOST_USER_GET_CONFIG/VHOST_USER_SET_CONFIG
> messages used for get/set config space from/to I/O target, VHOST_USER_SET_CONFIG_FD
> was added for event notifier in case the change of virtio config space. Also, those
> messages can be used for vhost device live migration as well.

As we are busy wrapping up a QEMU release, please remember to repost after the
release.

> Changpeng Liu (4):
>   vhost-user: add new vhost user messages to support virtio config space
>   vhost-user-blk: introduce a new vhost-user-blk host device
>   contrib/libvhost-user: enable virtio config space messages
>   contrib/vhost-user-blk: introduce a vhost-user-blk sample application
> 
>  .gitignore                              |   1 +
>  Makefile                                |   3 +
>  Makefile.objs                           |   2 +
>  configure                               |  11 +
>  contrib/libvhost-user/libvhost-user.c   |  51 +++
>  contrib/libvhost-user/libvhost-user.h   |  14 +
>  contrib/vhost-user-blk/Makefile.objs    |   1 +
>  contrib/vhost-user-blk/vhost-user-blk.c | 735 ++++++++++++++++++++++++++++++++
>  docs/interop/vhost-user.txt             |  31 ++
>  hw/block/Makefile.objs                  |   3 +
>  hw/block/vhost-user-blk.c               | 360 ++++++++++++++++
>  hw/virtio/vhost-user.c                  |  86 ++++
>  hw/virtio/vhost.c                       |  63 +++
>  hw/virtio/virtio-pci.c                  |  55 +++
>  hw/virtio/virtio-pci.h                  |  18 +
>  include/hw/virtio/vhost-backend.h       |   8 +
>  include/hw/virtio/vhost-user-blk.h      |  40 ++
>  include/hw/virtio/vhost.h               |  16 +
>  18 files changed, 1498 insertions(+)
>  create mode 100644 contrib/vhost-user-blk/Makefile.objs
>  create mode 100644 contrib/vhost-user-blk/vhost-user-blk.c
>  create mode 100644 hw/block/vhost-user-blk.c
>  create mode 100644 include/hw/virtio/vhost-user-blk.h
> 
> -- 
> 1.9.3