> SCSI's reply qeueue is very similar with blk-mq's hw queue, both assigned by > IRQ vector, so map te private reply queue into blk-mq's hw queue via > .host_tagset. > > Then the private reply mapping can be removed. > > Another benefit is that the request/irq lost issue may be solved in generic > approach because managed IRQ may be shutdown during CPU hotplug. Ming, I quickly tested this patch series on MegaRaid Aero controller. Without this patch I can get 3.0M IOPS, but once I apply this patch I see only 1.2M IOPS (40% Performance drop) HBA supports 5089 can_queue. <perf top> output without patch - 3.39% [megaraid_sas] [k] complete_cmd_fusion 3.36% [kernel] [k] scsi_queue_rq 3.26% [kernel] [k] entry_SYSCALL_64 2.57% [kernel] [k] syscall_return_via_sysret 1.95% [megaraid_sas] [k] megasas_build_and_issue_cmd_fusion 1.88% [kernel] [k] _raw_spin_lock_irqsave 1.79% [kernel] [k] gup_pmd_range 1.73% [kernel] [k] _raw_spin_lock 1.68% [kernel] [k] __sched_text_start 1.19% [kernel] [k] irq_entries_start 1.13% [kernel] [k] scsi_dec_host_busy 1.08% [kernel] [k] aio_complete 1.07% [kernel] [k] read_tsc 1.01% [kernel] [k] blk_mq_get_request 0.93% [kernel] [k] __update_load_avg_cfs_rq 0.92% [kernel] [k] aio_read_events 0.91% [kernel] [k] lookup_ioctx 0.91% fio [.] fio_gettime 0.87% [kernel] [k] set_next_entity 0.87% [megaraid_sas] [k] megasas_build_ldio_fusion <perf top> output with patch - 11.30% [kernel] [k] native_queued_spin_lock_slowpath 3.37% [kernel] [k] sbitmap_any_bit_set 2.91% [kernel] [k] blk_mq_run_hw_queue 2.32% [kernel] [k] _raw_spin_lock_irqsave 2.29% [kernel] [k] menu_select 2.04% [kernel] [k] entry_SYSCALL_64 2.03% [kernel] [k] __sched_text_start 1.70% [kernel] [k] scsi_queue_rq 1.66% [kernel] [k] _raw_spin_lock 1.58% [kernel] [k] syscall_return_via_sysret 1.33% [kernel] [k] native_write_msr 1.20% [kernel] [k] read_tsc 1.13% [kernel] [k] blk_mq_run_hw_queues 1.13% [kernel] [k] __sbq_wake_up 1.01% [kernel] [k] irq_entries_start 1.00% [kernel] [k] switch_mm_irqs_off 0.99% [kernel] [k] gup_pmd_range 0.98% [kernel] [k] __update_load_avg_cfs_rq 0.98% [kernel] [k] set_next_entity 0.92% [kernel] [k] do_idle Kashyap