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.
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 | 57 +++++++++++++++++++++++-----------------
drivers/scsi/scsi_priv.h | 2 +-
include/scsi/scsi_cmnd.h | 1 +
include/scsi/scsi_host.h | 1 -
6 files changed, 54 insertions(+), 28 deletions(-)
Cc: Jens Axboe <[email protected]>
Cc: Ewan D. Milne <[email protected]>
Cc: Omar Sandoval <[email protected]>,
Cc: "Martin K. Petersen" <[email protected]>,
Cc: James Bottomley <[email protected]>,
Cc: Christoph Hellwig <[email protected]>,
Cc: Kashyap Desai <[email protected]>
Cc: Hannes Reinecke <[email protected]>
Cc: Laurence Oberman <[email protected]>
Cc: Bart Van Assche <[email protected]>
--
2.20.1