summaryrefslogtreecommitdiffstats
path: root/drivers/target/target_core_user.c
diff options
context:
space:
mode:
authorMing Lei2018-06-24 16:03:27 +0200
committerMartin K. Petersen2018-06-26 18:53:26 +0200
commit328728630d9f2bf14b82ca30b5e47489beefe361 (patch)
treee9dd026ef5a248dc35190e8bb3f2c23063283be2 /drivers/target/target_core_user.c
parentscsi: read host_busy via scsi_host_busy() (diff)
downloadkernel-qcow2-linux-328728630d9f2bf14b82ca30b5e47489beefe361.tar.gz
kernel-qcow2-linux-328728630d9f2bf14b82ca30b5e47489beefe361.tar.xz
kernel-qcow2-linux-328728630d9f2bf14b82ca30b5e47489beefe361.zip
scsi: core: avoid host-wide host_busy counter for scsi_mq
It isn't necessary to check the host depth in scsi_queue_rq() any more since it has been respected by blk-mq before calling scsi_queue_rq() via getting driver tag. Lots of LUNs may attach to same host and per-host IOPS may reach millions, so we should avoid expensive atomic operations on the host-wide counter in the IO path. This patch implements scsi_host_busy() via blk_mq_tagset_busy_iter() for reading the count of busy IOs for scsi_mq. It is observed that IOPS is increased by 15% in IO test on scsi_debug (32 LUNs, 32 submit queues, 1024 can_queue, libaio/dio) in a dual-socket system. [mkp: clarified commit message] 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: Don Brace <don.brace@microsemi.com> Cc: Kashyap Desai <kashyap.desai@broadcom.com> Cc: Mike Snitzer <snitzer@redhat.com> Cc: Hannes Reinecke <hare@suse.de> Cc: Laurence Oberman <loberman@redhat.com> Cc: Bart Van Assche <bart.vanassche@wdc.com> Signed-off-by: Ming Lei <ming.lei@redhat.com> Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/target/target_core_user.c')
0 files changed, 0 insertions, 0 deletions