[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 00/21] SCSI subsystem improvements
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH v2 00/21] SCSI subsystem improvements |
Date: |
Mon, 16 May 2011 14:16:16 +0200 |
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.
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 | 186 +++++++++++++++++++++++--------------
hw/scsi-bus.c | 203 +++++++++++++++++++++++++++++++++++++---
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, 830 insertions(+), 549 deletions(-)
--
1.7.4.4
- [Qemu-devel] [PATCH v2 00/21] SCSI subsystem improvements,
Paolo Bonzini <=
- [Qemu-devel] [PATCH v2 01/21] scsi: add tracing of scsi requests, Paolo Bonzini, 2011/05/16
- [Qemu-devel] [PATCH v2 02/21] scsi-generic: Remove bogus double complete, Paolo Bonzini, 2011/05/16
- [Qemu-devel] [PATCH v2 03/21] scsi: introduce scsi_req_data, Paolo Bonzini, 2011/05/16
- [Qemu-devel] [PATCH v2 04/21] scsi: introduce SCSIBusOps, Paolo Bonzini, 2011/05/16
- [Qemu-devel] [PATCH v2 05/21] scsi: reference-count requests, Paolo Bonzini, 2011/05/16
- [Qemu-devel] [PATCH v2 06/21] lsi: extract lsi_find_by_tag, Paolo Bonzini, 2011/05/16
- [Qemu-devel] [PATCH v2 07/21] scsi: Use 'SCSIRequest' directly, Paolo Bonzini, 2011/05/16
- [Qemu-devel] [PATCH v2 09/21] scsi: introduce scsi_req_abort, Paolo Bonzini, 2011/05/16
- [Qemu-devel] [PATCH v2 08/21] scsi: commonize purging requests, Paolo Bonzini, 2011/05/16
- [Qemu-devel] [PATCH v2 10/21] scsi: introduce scsi_req_cancel, Paolo Bonzini, 2011/05/16