Re: [V2, 2/2] scsi: avoid to hold host-wide counter of host_busy for scsi_mq

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jun 29, 2018 at 09:20:54AM -0700, Guenter Roeck wrote:
> Hi,
> 
> On Sun, Jun 24, 2018 at 10:03:27PM +0800, Ming Lei wrote:
> > 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
> > level, so we should avoid to this expensive atomic operations on the
> > hostwide counter in IO path.
> > 
> > This patch implemens 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 one
> > dual-socket system.
> > 
> 
> This patch breaks two of my qemu test builds in -next: parisc:defconfig
> and arm:versatilepb-scsi:versatile_defconfig (which is versatilepb booting
> from scsi disk). The symptom is the same for both: Boot stalls after scsi
> bus initialization.
> 
> arm:
> 
> sym53c8xx 0000:00:0c.0: enabling device (0100 -> 0103)
> sym0: <895a> rev 0x0 at pci 0000:00:0c.0 irq 66
> sym0: No NVRAM, ID 7, Fast-40, LVD, parity checking
> sym0: SCSI BUS has been reset.
> scsi host0: sym-2.2.3
> random: fast init done
> [stalls]
> 
> parisc:
> 
> sym53c8xx 0000:00:00.0: enabling SERR and PARITY (0107 -> 0147)
> sym0: <895a> rev 0x0 at pci 0000:00:00.0 irq 17
> sym0: PA-RISC Firmware, ID 7, Fast-40, LVD, parity checking
> sym0: SCSI BUS has been reset.
> scsi host0: sym-2.2.3
> random: fast init done
> [stalls]
> 
> Reverting the patch fixes the problem. Bisect log is attached.

Please test the patch of 'scsi: fix scsi_host_queue_ready', which has
been posted on linux-scsi list and CCed to you.

Thanks,
Ming



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux