From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx> Hi folks, This is the third RFC for vhost-scsi patches against mainline QEMU v1.1 to support the upstream tcm_vhost host virtualized target driver now available in v3.6-rc kernel code. This series is based upon last week's commit 346fe0c4c0b, and is aiming for a future QEMU v1.3 merge. The patch series is available directly from: git://git.kernel.org/pub/scm/virt/kvm/nab/qemu-kvm.git vhost-scsi-merge-v3 This -v3 series contains further review changes based upon feedback from MST, Paolo, and Blue. It also contains the changes to function against the changes in target-pending/master -> headed for v3.6-rc3 code. Changes from v3 -> v2: - Move qdev_prop_vhost_scsi + DEFINE_PROP_VHOST_SCSI defs into vhost-scsi.[c,h] (reported by MST) - Add enum vhost_scsi_vq_list for VHostSCSI->vqs[] enumeration (reported by MST) - Add missing braces around single like if statement to following QEMU style (reported by Blue Swirl) - Change vhost_scsi_target->vhost_wwpn to char *, in order to drop casts to pstrcpy in vhost_scsi_start() + vhost_scsi_stop() (reported by Blue Swirl) - Change VHOST_SCSI_GET_ABI_VERSION to 'int' type (MST) - Add vhost-scsi.h include for DEFINE_PROP_VHOST_SCSI (mst + nab) - Move vhost-scsi related struct members ahead of *cmd_vqs[0] within VirtIOSCSI definition. (paolo + nab) - Fix 4 byte alignment of vhost_scsi_target (MST) - Convert fprintf(stderr, ...) usage to -> error_report() (reported by MST) - Do explict memset of backend before calling VHOST_SCSI_CLEAR_ENDPOINT in vhost_scsi_stop() (reported by MST) - Add support for vhostfd passing in vhost_scsi_add() (reported by MST) - Move net_handle_fd_param() -> monitor_handle_fd_param() for generic usage by net/ + vhost-scsi (reported by MST) - Change vhost_scsi_add() to use monitor_handle_fd_param() (reported by MST) 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) Thanks again to everyone who has been reviewing this series! --nab Nicholas Bellinger (2): monitor: Rename+move net_handle_fd_param -> monitor_handle_fd_param virtio-scsi: Set max_target=0 during vhost-scsi operation 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/qdev-properties.c | 41 +++++++++++ hw/vhost-scsi.c | 190 ++++++++++++++++++++++++++++++++++++++++++++++++++ hw/vhost-scsi.h | 62 ++++++++++++++++ hw/vhost.c | 5 +- hw/vhost.h | 3 +- hw/vhost_net.c | 2 +- hw/virtio-pci.c | 2 + hw/virtio-scsi.c | 55 ++++++++++++++- hw/virtio-scsi.h | 1 + monitor.c | 18 +++++ monitor.h | 1 + net.c | 18 ----- net.h | 2 - net/socket.c | 2 +- net/tap.c | 4 +- qemu-common.h | 1 + qemu-config.c | 19 +++++ qemu-options.hx | 4 + vl.c | 18 +++++ 21 files changed, 431 insertions(+), 28 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 target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html