Skip to content
  1. Nov 02, 2019
    • Ming Lei's avatar
      scsi: core: avoid host-wide host_busy counter for scsi_mq · 6eb045e0
      Ming Lei authored
      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() with
      one scsi command state 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.
      
      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 <bvanassche@acm.org>
      Link: https://lore.kernel.org/r/20191025065855.6309-1-ming.lei@redhat.com
      
      
      Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
      Reviewed-by: default avatarJens Axboe <axboe@kernel.dk>
      Reviewed-by: default avatarBart Van Assche <bvanassche@acm.org>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      6eb045e0
  2. Nov 01, 2019
  3. Oct 29, 2019
  4. Oct 25, 2019