From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx> Hi Paolo, Stefan, & QEMU folks, The following is the second RFC series for vhost-scsi patches against mainline QEMU v1.1.0. The series is available from the following working branch: git://git.kernel.org/pub/scm/virt/kvm/nab/qemu-kvm.git vhost-scsi-merge Apologies for the delayed follow-up on this series. The changes detailed below addresses Paolo's original comments on vhost-scsi code from the last weeks. As of this evening the tcm_vhost driver has now been merged into the mainline kernel for 3.6-rc2 here: tcm_vhost: Initial merge for vhost level target fabric driver http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=057cbf49a1f08297877 Also, after following up on the qemu-kvm IRQ injection changes (from Jan) that caused a performance regerssion with QEMU 1.1.0 code originally reported here: vhost-scsi port to v1.1.0 + MSI-X performance regression http://comments.gmane.org/gmane.linux.scsi.target.devel/2277 It turns out that setting explict virtio-queue IRQ affinity within guest appears to bring small block random IOPs performance back up to the pre IRQ injection conversion levels. I'm not sure why this ended up making so much of a difference post IRQ injection conversion, but setting virtio-queue affinity is now getting us back to pre IQN injection conversion levels. Changes from v1 -> v2: - Expose ABI version via VHOST_SCSI_GET_ABI_VERSION + use Rev 0 as starting point for v3.6-rc code (Stefan + ALiguori + nab) - Fix upstream qemu conflict in hw/qdev-properties.c - Make GET_ABI_VERSION use int (nab + mst) - Drop unnecessary event-notifier changes (nab) - Fix vhost-scsi case lables in configure (reported by paolo) - Convert qdev_prop_vhost_scsi to use ->get() + ->set() following qdev_prop_netdev (reported by paolo) - Fix typo in qemu-options.hx definition of vhost-scsi (reported by paolo) - Squash virtio-scsi: use the vhost-scsi host device from stefan (nab) - Fix up virtio_scsi_properties[] conflict w/ upstream qemu (nab) - Drop usage of to_virtio_scsi() in virtio_scsi_set_status() (reported by paolo) - Use modern VirtIOSCSIConf define in virtio-scsi.h (reported by paolo) - Use s->conf->vhost_scsi instead of proxyconf->vhost_scsi in virtio_scsi_init() (reported by paolo) - Only register QEMU SCSI bus is vhost-scsi is not active (reported by paolo) - Fix incorrect VirtIOSCSI->cmd_vqs[0] definition (nab) Please have another look, and let me know if anything else needs to be addressed. Thanks! --nab Nicholas Bellinger (3): msix: Work-around for vhost-scsi with KVM in-kernel MSI injection virtio-scsi: Set max_target=0 during vhost-scsi operation virtio-scsi: Fix incorrect VirtIOSCSI->cmd_vqs[0] definition Stefan Hajnoczi (3): vhost: Pass device path to vhost_dev_init() vhost-scsi: add -vhost-scsi host device for use with tcm-vhost virtio-scsi: Add start/stop functionality for vhost-scsi configure | 10 +++ hw/Makefile.objs | 1 + hw/msix.c | 3 + hw/qdev-properties.c | 40 ++++++++++++ hw/qdev.h | 3 + hw/vhost-scsi.c | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++ hw/vhost-scsi.h | 50 +++++++++++++++ hw/vhost.c | 5 +- hw/vhost.h | 3 +- hw/vhost_net.c | 2 +- hw/virtio-pci.c | 1 + hw/virtio-scsi.c | 56 ++++++++++++++++- hw/virtio-scsi.h | 1 + qemu-common.h | 1 + qemu-config.c | 16 +++++ qemu-options.hx | 4 + vl.c | 18 +++++ 17 files changed, 378 insertions(+), 6 deletions(-) create mode 100644 hw/vhost-scsi.c create mode 100644 hw/vhost-scsi.h -- 1.7.2.5 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html