Hi, SCSI's per-LUN queue depth is usually for improving IO merge and balancing IO load among LUNs. blk-mq has provides fair driver tag allocation and managed IRQ balances interrupt load among queues, meantime IO merge doesn't play a big role for SSD, and NVMe doesn't apply per-namespace queue depth. This patchset tries to don't apply per-LUN queue depth for SSD, then we can avoid the expensive atomic operation on sdev->device_busy. We do understand that this shared counter affects IOPS a lot. The 1st two patches replaces .device_busy with two private counter for megaraid_sas and mpt3sas to track inflight per-LUN commands since the two drivers need the counter for balancing load, even though it is probably no much use. The last two patches avoid to operate on sdev->device_busy in IO path for SSD. Ming Lei (4): scsi: megaraid_sas: use private counter for tracking inflight per-LUN commands scsi: mpt3sas: use private counter for tracking inflight per-LUN commands scsi: sd: register request queue after sd_revalidate_disk is done scsi: core: don't limit per-LUN queue depth for SSD block/blk-sysfs.c | 14 +++++++++++- drivers/scsi/megaraid/megaraid_sas.h | 1 + drivers/scsi/megaraid/megaraid_sas_base.c | 15 +++++++++++-- drivers/scsi/megaraid/megaraid_sas_fusion.c | 13 +++++++---- drivers/scsi/mpt3sas/mpt3sas_base.c | 3 ++- drivers/scsi/mpt3sas/mpt3sas_base.h | 1 + drivers/scsi/mpt3sas/mpt3sas_scsih.c | 15 +++++++++++-- drivers/scsi/scsi_lib.c | 24 +++++++++++++++------ drivers/scsi/sd.c | 8 ++++++- 9 files changed, 77 insertions(+), 17 deletions(-) Cc: Sathya Prakash <sathya.prakash@xxxxxxxxxxxx> Cc: Chaitra P B <chaitra.basappa@xxxxxxxxxxxx> Cc: Suganath Prabu Subramani <suganath-prabu.subramani@xxxxxxxxxxxx> Cc: Kashyap Desai <kashyap.desai@xxxxxxxxxxxx> Cc: Sumit Saxena <sumit.saxena@xxxxxxxxxxxx> Cc: Shivasharan S <shivasharan.srikanteshwara@xxxxxxxxxxxx> Cc: Ewan D. Milne <emilne@xxxxxxxxxx> Cc: Christoph Hellwig <hch@xxxxxx>, Cc: Hannes Reinecke <hare@xxxxxxx> Cc: Bart Van Assche <bart.vanassche@xxxxxxx> -- 2.20.1