On Thu, Mar 02, 2017 at 08:43:00AM -0800, Felipe Franciosi wrote: > Based on various discussions on the 2016 KVM Forum, I'm sending over a > vhost-user-scsi implementation for your consideration. > > This patchset introduces a new vhost-user SCSI device. While heavily > based on vhost-scsi, it is implemented using vhost's userspace > counterpart. The device has been coded and tested to work with live > migration. > > As part of this work, a new vhost-scsi-common device was created and > the existing vhost-scsi device moved underneath it. The new > vhost-user-scsi device is also placed underneath it. > > A sample application based on the newly introduced libvhost-user is > also included. It makes use of libiscsi for simplicity. > > For convenience, I'm maintaining an up-to-date version of these > patches (including some necessary fixes for libvhost-user) on: > > https://github.com/franciozzy/qemu/tree/vus-upstream-v4 > > See the individual patches for build and use instructions. > > Signed-off-by: Felipe Franciosi <fel...@nutanix.com>
Cc Yuanhan who was interested in this topic. > v3 -> v4: > - Drop configure switches and build vus by default. > - Add sample application to .gitignore. > - Removed a whitespace error. > - Rebase on master. > > v2 -> v3: > - Rebase after vhost notifier fixes by Paolo. > - Exposed F_HOTPLUG and F_CHANGE on vhost-user-scsi. > > v1 -> v2: > - Introduce new vhost-scsi-common device type. > - Move vhost-scsi device underneath vhost-scsi-common. > - Move sample application from tests/ to contrib/. > - Make sample application use the glib event loop. > - Minor fixes. > > Felipe Franciosi (3): > vhost-scsi: create a vhost-scsi-common abstraction > vus: Introduce vhost-user-scsi host device > vus: Introduce a vhost-user-scsi sample application > > .gitignore | 1 + > Makefile | 3 + > Makefile.objs | 4 + > configure | 1 + > contrib/vhost-user-scsi/Makefile.objs | 1 + > contrib/vhost-user-scsi/vhost-user-scsi.c | 886 > ++++++++++++++++++++++++++++++ > default-configs/pci.mak | 1 + > hw/scsi/Makefile.objs | 3 +- > hw/scsi/vhost-scsi-common.c | 143 +++++ > hw/scsi/vhost-scsi.c | 194 ++----- > hw/scsi/vhost-user-scsi.c | 215 ++++++++ > hw/virtio/virtio-pci.c | 54 ++ > hw/virtio/virtio-pci.h | 11 + > include/hw/virtio/vhost-scsi-common.h | 48 ++ > include/hw/virtio/vhost-scsi.h | 11 +- > include/hw/virtio/vhost-user-scsi.h | 35 ++ > include/hw/virtio/virtio-scsi.h | 5 + > 17 files changed, 1468 insertions(+), 148 deletions(-) > create mode 100644 contrib/vhost-user-scsi/Makefile.objs > create mode 100644 contrib/vhost-user-scsi/vhost-user-scsi.c > create mode 100644 hw/scsi/vhost-scsi-common.c > create mode 100644 hw/scsi/vhost-user-scsi.c > create mode 100644 include/hw/virtio/vhost-scsi-common.h > create mode 100644 include/hw/virtio/vhost-user-scsi.h > > -- > 1.9.4