From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: hch@lst.de
Subject: [Qemu-devel] [PATCH v4 00/24] SCSI subsystem improvements
Date: Mon, 23 May 2011 18:08:45 +0200 [thread overview]
Message-ID: <1306166949-19698-1-git-send-email-pbonzini@redhat.com> (raw)
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; see recently posted RFC 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 patches
- RHEL6.1 install with vscsi with scsi-disk CD and installation disk
hung at the same place with or without the series
esp is only compile tested.
Please review and apply.
v3->v4:
renamed scsi_req_kick to scsi_req_continue. Changed SCSIBusOps to
pointer. Removed scsi_req_free, merged it into scsi_req_unref.
Added head comments for some functions. Renamed arguments to
HBA callbacks. Added patches 23 and 24
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 (20):
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_continue
scsi: introduce scsi_req_get_buf
scsi: make write_data return void
scsi-generic: Handle queue full
esp: rename sense to status
scsi: split command_complete callback in two
scsi: rename arguments to the new callbacks
scsi: ignore LUN field in the CDB
hw/esp.c | 119 ++++++++++++++----------
hw/lsi53c895a.c | 188 +++++++++++++++++++++++--------------
hw/scsi-bus.c | 214 +++++++++++++++++++++++++++++++++++++++----
hw/scsi-disk.c | 265 ++++++++++++++++++++++-------------------------------
hw/scsi-generic.c | 220 +++++++++++++++++++++-----------------------
hw/scsi.h | 91 ++++++++++++++----
hw/spapr_vscsi.c | 185 +++++++++++++++++++++----------------
hw/usb-msd.c | 120 ++++++++++++++----------
trace-events | 8 ++
9 files changed, 843 insertions(+), 567 deletions(-)
--
1.7.4.4
next reply other threads:[~2011-05-23 16:09 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-23 16:08 Paolo Bonzini [this message]
2011-05-23 16:08 ` [Qemu-devel] [PATCH v4 01/24] scsi: add tracing of scsi requests Paolo Bonzini
2011-05-23 16:08 ` [Qemu-devel] [PATCH v4 02/24] scsi-generic: Remove bogus double complete Paolo Bonzini
2011-05-23 16:08 ` [Qemu-devel] [PATCH v4 03/24] scsi: introduce scsi_req_data Paolo Bonzini
2011-05-23 16:08 ` [Qemu-devel] [PATCH v4 04/24] scsi: introduce SCSIBusOps Paolo Bonzini
2011-05-23 19:35 ` Blue Swirl
2011-05-23 16:08 ` [Qemu-devel] [PATCH v4 05/24] scsi: reference-count requests Paolo Bonzini
2011-05-23 16:08 ` [Qemu-devel] [PATCH v4 06/24] lsi: extract lsi_find_by_tag Paolo Bonzini
2011-05-23 16:08 ` [Qemu-devel] [PATCH v4 07/24] scsi: Use 'SCSIRequest' directly Paolo Bonzini
2011-05-23 16:08 ` [Qemu-devel] [PATCH v4 08/24] scsi: commonize purging requests Paolo Bonzini
2011-05-23 16:08 ` [Qemu-devel] [PATCH v4 09/24] scsi: introduce scsi_req_abort Paolo Bonzini
2011-05-23 16:08 ` [Qemu-devel] [PATCH v4 10/24] scsi: introduce scsi_req_cancel Paolo Bonzini
2011-05-23 16:08 ` [Qemu-devel] [PATCH v4 11/24] scsi: use scsi_req_complete Paolo Bonzini
2011-05-23 16:08 ` [Qemu-devel] [PATCH v4 12/24] scsi: Update sense code handling Paolo Bonzini
2011-05-23 16:08 ` [Qemu-devel] [PATCH v4 13/24] scsi: do not call send_command directly Paolo Bonzini
2011-05-23 16:08 ` [Qemu-devel] [PATCH v4 14/24] scsi: introduce scsi_req_new Paolo Bonzini
2011-05-23 16:09 ` [Qemu-devel] [PATCH v4 15/24] scsi: introduce scsi_req_continue Paolo Bonzini
2011-05-23 16:09 ` [Qemu-devel] [PATCH v4 16/24] scsi: introduce scsi_req_get_buf Paolo Bonzini
2011-05-23 16:09 ` [Qemu-devel] [PATCH v4 17/24] scsi: Implement 'get_sense' callback Paolo Bonzini
2011-05-23 16:09 ` [Qemu-devel] [PATCH v4 18/24] scsi-disk: add data direction checking Paolo Bonzini
2011-05-23 16:09 ` [Qemu-devel] [PATCH v4 19/24] scsi: make write_data return void Paolo Bonzini
2011-05-23 16:09 ` [Qemu-devel] [PATCH v4 20/24] scsi-generic: Handle queue full Paolo Bonzini
2011-05-23 16:09 ` [Qemu-devel] [PATCH v4 21/24] esp: rename sense to status Paolo Bonzini
2011-05-23 16:09 ` [Qemu-devel] [PATCH v4 22/24] scsi: split command_complete callback in two Paolo Bonzini
2011-05-23 19:38 ` Blue Swirl
2011-05-24 7:32 ` Paolo Bonzini
2011-05-23 16:09 ` [Qemu-devel] [PATCH v4 23/24] scsi: rename arguments to the new callbacks Paolo Bonzini
2011-05-23 16:09 ` [Qemu-devel] [PATCH v4 24/24] scsi: ignore LUN field in the CDB Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1306166949-19698-1-git-send-email-pbonzini@redhat.com \
--to=pbonzini@redhat.com \
--cc=hch@lst.de \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).