qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL v5 00/25] SCSI subsystem improvements
@ 2011-05-26 10:56 Paolo Bonzini
  2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 01/25] scsi: add tracing of scsi requests Paolo Bonzini
                   ` (25 more replies)
  0 siblings, 26 replies; 35+ messages in thread
From: Paolo Bonzini @ 2011-05-26 10:56 UTC (permalink / raw)
  To: qemu-devel

The following changes since commit aa29141d84d58171c2d219f0a4b599bd76fb2e37:

  Merge remote-tracking branch 'kraxel/CVE-2011-1751' into staging (2011-05-25 07:04:13 -0500)

are available in the git repository at:

  git://github.com/bonzini/qemu.git scsi.2

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.  Most have been acked by Christoph; I fixed all issues he
pointed out in the others.

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, perhaps it was
  just me being impatient.

esp is only compile tested.

Please review and merge.

v4->v5:
    SCSIBusOps now const-ified.  Added braces here and there.
    Added patch 5.

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 (21):
  scsi: add tracing of scsi requests
  scsi-generic: Remove bogus double complete
  scsi: introduce scsi_req_data
  scsi: introduce SCSIBusOps
  scsi-generic: do not use a stale aiocb
  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   |  200 ++++++++++++++++++++++++---------------
 hw/scsi-bus.c     |  220 +++++++++++++++++++++++++++++++++++++++----
 hw/scsi-disk.c    |  271 ++++++++++++++++++++++-------------------------------
 hw/scsi-generic.c |  223 +++++++++++++++++++++-----------------------
 hw/scsi.h         |   91 ++++++++++++++----
 hw/spapr_vscsi.c  |  187 ++++++++++++++++++++----------------
 hw/usb-msd.c      |  120 ++++++++++++++----------
 trace-events      |    8 ++
 9 files changed, 866 insertions(+), 573 deletions(-)

-- 
1.7.4.4

^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2011-06-03  6:59 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-26 10:56 [Qemu-devel] [PULL v5 00/25] SCSI subsystem improvements Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 01/25] scsi: add tracing of scsi requests Paolo Bonzini
2011-05-26 20:20   ` Blue Swirl
2011-05-27  8:32     ` Stefan Hajnoczi
2011-05-27 12:43       ` Paolo Bonzini
2011-05-27 12:51   ` [Qemu-devel] [PATCH v6 " Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 02/25] scsi-generic: Remove bogus double complete Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 03/25] scsi: introduce scsi_req_data Paolo Bonzini
2011-05-27 12:51   ` [Qemu-devel] [PATCH v6 " Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 04/25] scsi: introduce SCSIBusOps Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 05/25] scsi-generic: do not use a stale aiocb Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 06/25] scsi: reference-count requests Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 07/25] lsi: extract lsi_find_by_tag Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 08/25] scsi: Use 'SCSIRequest' directly Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 09/25] scsi: commonize purging requests Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 10/25] scsi: introduce scsi_req_abort Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 11/25] scsi: introduce scsi_req_cancel Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 12/25] scsi: use scsi_req_complete Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 13/25] scsi: Update sense code handling Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 14/25] scsi: do not call send_command directly Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 15/25] scsi: introduce scsi_req_new Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 16/25] scsi: introduce scsi_req_continue Paolo Bonzini
2011-05-27 12:51   ` [Qemu-devel] [PATCH v6 " Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 17/25] scsi: introduce scsi_req_get_buf Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 18/25] scsi: Implement 'get_sense' callback Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 19/25] scsi-disk: add data direction checking Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 20/25] scsi: make write_data return void Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 21/25] scsi-generic: Handle queue full Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 22/25] esp: rename sense to status Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 23/25] scsi: split command_complete callback in two Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 24/25] scsi: rename arguments to the new callbacks Paolo Bonzini
2011-05-26 10:56 ` [Qemu-devel] [PATCH v5 25/25] scsi: ignore LUN field in the CDB Paolo Bonzini
2011-05-31 13:38 ` [Qemu-devel] [PULL v5 00/25] SCSI subsystem improvements Anthony Liguori
2011-06-02 14:54   ` Andreas Färber
2011-06-03  6:58     ` Paolo Bonzini

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).