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. Hi Guenter, Thanks for your test & report! This looks a bit weird, I need to take a close look given this patch supposes to be nop for non-blk-mq, which is exactly your case. Thanks, Ming