> On Jul 6, 2017, at 6:41 AM, Michael S. Tsirkin <m...@redhat.com> wrote: > > On Fri, Apr 21, 2017 at 02:53:33PM +0000, Felipe Franciosi wrote: >> >>> On 2 Mar 2017, at 21:47, Michael S. Tsirkin <m...@redhat.com> wrote: >>> >>> On Thu, Mar 02, 2017 at 10:25:49AM -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-v5 >>>> >>>> See the individual patches for build and use instructions. >>>> >>>> Signed-off-by: Felipe Franciosi <fel...@nutanix.com> >>> >>> BTW, pls remember to ping after QEMU release. >> >> Ping! :-) >> >> F. > > Now that code is upstream, I think the next step would be > to add vIOMMU support based on what we are doing for virtio-net, > so people can use SPDK within guest with security. Do you think > you will have the time to look at it?
Hi Michael, Yes - we (SPDK team at Intel) have this on our TODO list, in addition to a polled mode virtio-scsi driver (akin to the DPDK virtio-net driver that can be used in the guest). -Jim > > >>> >>>> v4 -> v5: >>>> - Add a patch to fix a build issue with libvhost-user. >>>> >>>> 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 (4): >>>> libvhost-user: replace vasprintf() to fix build >>>> 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/libvhost-user/libvhost-user.c | 2 +- >>>> 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 + >>>> 18 files changed, 1469 insertions(+), 149 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