From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53255) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c4pjL-00033l-4v for qemu-devel@nongnu.org; Thu, 10 Nov 2016 08:49:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c4pjG-0006aY-VP for qemu-devel@nongnu.org; Thu, 10 Nov 2016 08:49:27 -0500 Received: from 206-15-90-246.static.twtelecom.net ([206.15.90.246]:42528 helo=felipe-franciosi.localdomain) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c4pjG-0006aJ-OE for qemu-devel@nongnu.org; Thu, 10 Nov 2016 08:49:22 -0500 From: Felipe Franciosi Date: Thu, 10 Nov 2016 05:49:16 -0800 Message-Id: <1478785759-29480-1-git-send-email-felipe@nutanix.com> Subject: [Qemu-devel] [PATCH v2 0/3] Introduce vhost-user-scsi and sample application List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini , Stefan Hajnoczi , Marc-Andre Lureau , "Michael S. Tsirkin" Cc: "qemu-devel@nongnu.org" , Felipe Franciosi Based on various discussions on the 2016 KVM Forum, I'm sending over a vhost-user-scsi implementation for your consideration. This patch set 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 and vhost core code still under discussion) on: https://github.com/franciozzy/qemu/tree/vus-upstream See the individual patches for build and use instructions. Signed-off-by: Felipe Franciosi 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 Makefile | 4 + Makefile.objs | 4 + configure | 11 + contrib/vhost-user-scsi/Makefile.objs | 1 + contrib/vhost-user-scsi/vhost-user-scsi.c | 886 ++++++++++++++++++++++++++++++ hw/scsi/Makefile.objs | 3 +- hw/scsi/vhost-scsi-common.c | 143 +++++ hw/scsi/vhost-scsi.c | 188 ++----- hw/scsi/vhost-user-scsi.c | 198 +++++++ hw/virtio/virtio-pci.c | 58 ++ hw/virtio/virtio-pci.h | 15 + include/hw/virtio/vhost-scsi-common.h | 48 ++ include/hw/virtio/vhost-scsi.h | 11 +- include/hw/virtio/vhost-user-scsi.h | 34 ++ include/hw/virtio/virtio-scsi.h | 7 + 15 files changed, 1466 insertions(+), 145 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