From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:40176) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QMI2V-0005ZR-0X for qemu-devel@nongnu.org; Tue, 17 May 2011 07:02:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QMI1v-0004zO-Id for qemu-devel@nongnu.org; Tue, 17 May 2011 07:02:10 -0400 Received: from mail-iw0-f173.google.com ([209.85.214.173]:61697) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QMI1v-0004zI-EU for qemu-devel@nongnu.org; Tue, 17 May 2011 07:01:35 -0400 Received: by iwl42 with SMTP id 42so369736iwl.4 for ; Tue, 17 May 2011 04:01:34 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Tue, 17 May 2011 13:00:46 +0200 Message-Id: <1305630067-2119-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH v3 00/21] SCSI subsystem improvements List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This series includes the following improvements to the SCSI subsystem: 1) introduction of SCSIBusOps that generalize the existing command_complete callback; 2) widespread use of the SCSIRequest abstraction, with simpler memory management (refcounting) and with various common idioms converted into simple C functions instead of duplicating them all over the place; 3) support for autosense. Some patches are from Hannes Reinecke's megasas patchset posted last November, forward ported and applied to the new vSCSI controller as well. I already planned the following two series too: 1) adding support for zerocopy. Previous attempts were rejected because they were applied to real devices (thus making for example an IOMMU hard to impossible). However, for PV devices zerocopy should be uncontroversial---and it is a must to get competitive performance WRT virtio-blk. I'll use vmw-pvscsi for the first implementation and for benchmarking. 2) adding support for multiple LUNs. I plan to add a fake "scsi-target" device for this. After this I'll work on the virtio-scsi device model. Testing: - RHEL6.1 install complete to scsi-disk with lsi, from scsi-generic CD - iozone run with lsi on scsi-disk target - RHEL6.1 install to usb-msd from IDE CD is too slow, but it manages to format /boot in ~10 minutes with or without the patch - RHEL6.1 install started with vscsi, from scsi-generic CD including playing with opening/closing the tray (to exercise autosense), complete test not done yet esp is only compile tested. Please review and apply; I do not think this should go in through the block branch. v2->v3: included fixes for Jonathan Nieder's recently reported bug v1->v2: rebased, added patch 21 Hannes Reinecke (4): scsi: Use 'SCSIRequest' directly scsi: Update sense code handling scsi: Implement 'get_sense' callback scsi-disk: add data direction checking Paolo Bonzini (17): scsi: add tracing of scsi requests scsi-generic: Remove bogus double complete scsi: introduce scsi_req_data scsi: introduce SCSIBusOps scsi: reference-count requests lsi: extract lsi_find_by_tag scsi: commonize purging requests scsi: introduce scsi_req_abort scsi: introduce scsi_req_cancel scsi: use scsi_req_complete scsi: do not call send_command directly scsi: introduce scsi_req_new scsi: introduce scsi_req_kick scsi: introduce scsi_req_get_buf scsi: make write_data return void scsi-generic: Handle queue full scsi: split command_complete callback in two hw/esp.c | 111 +++++++++++++--------- hw/lsi53c895a.c | 189 +++++++++++++++++++++++--------------- hw/scsi-bus.c | 209 +++++++++++++++++++++++++++++++++++++++--- hw/scsi-disk.c | 264 ++++++++++++++++++++++------------------------------- hw/scsi-generic.c | 218 +++++++++++++++++++++----------------------- hw/scsi.h | 91 ++++++++++++++---- hw/spapr_vscsi.c | 180 ++++++++++++++++++++---------------- hw/usb-msd.c | 118 ++++++++++++++---------- trace-events | 8 ++ 9 files changed, 836 insertions(+), 552 deletions(-) -- 1.7.4.4