mbox series

[V4,0/2] scsi: avoid atomic operations in IO path

Message ID 20191009093241.21481-1-ming.lei@redhat.com (mailing list archive)
Headers show
Series scsi: avoid atomic operations in IO path | expand

Message

Ming Lei Oct. 9, 2019, 9:32 a.m. UTC
Hi,

The 1st patch kills the atomic host-wide counter of host_busy.

The 2nd patch bypass the atomic LUN-wide connter of device_busy
for fast SSD device.

V4:
	- fix one build waring, just a line change in scsi_dev_queue_ready()

V3:
	- use non-atomic set/clear bit operations as suggested by Bart
	- kill single field struct for storing count of in-flight requests
	- add patch to bypass the atomic LUN-wide counter of device_busy
	for fast SSD device

V2:
	- introduce SCMD_STATE_INFLIGHT for getting accurate host busy
	via blk_mq_tagset_busy_iter()
	- verified that original Jens's report[1] is fixed
	- verified that SCSI timeout/abort works fine


Ming Lei (2):
  scsi: core: avoid host-wide host_busy counter for scsi_mq
  scsi: core: don't limit per-LUN queue depth for SSD

 drivers/scsi/hosts.c     | 19 ++++++++++++-
 drivers/scsi/scsi.c      |  2 +-
 drivers/scsi/scsi_lib.c  | 59 ++++++++++++++++++++++++----------------
 drivers/scsi/scsi_priv.h |  2 +-
 include/scsi/scsi_cmnd.h |  1 +
 include/scsi/scsi_host.h |  1 -
 6 files changed, 56 insertions(+), 28 deletions(-)

Cc: Jens Axboe <axboe@kernel.dk>
Cc: Ewan D. Milne <emilne@redhat.com>
Cc: Omar Sandoval <osandov@fb.com>,
Cc: "Martin K. Petersen" <martin.petersen@oracle.com>,
Cc: James Bottomley <james.bottomley@hansenpartnership.com>,
Cc: Christoph Hellwig <hch@lst.de>,
Cc: Kashyap Desai <kashyap.desai@broadcom.com>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Laurence Oberman <loberman@redhat.com>
Cc: Bart Van Assche <bart.vanassche@wdc.com>