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

Ming Lei
2019-10-09T09:32:54Z

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>
--
2.20.1