linux/drivers/scsi/pm8001
John Garry 42f22fe36d scsi: pm8001: Expose hardware queues for pm80xx
In commit 05c6c029a4 ("scsi: pm80xx: Increase number of supported
queues"), support for 80xx chip was improved by enabling multiple HW
queues.

In this, like other SCSI MQ HBA drivers at the time, the HW queues were not
exposed to upper layer, and instead the driver managed the queues
internally.

However, this management duplicates blk-mq code. In addition, the HW queue
management is sub-optimal for a system where the number of CPUs exceeds the
HW queues - this is because queues are selected in a round-robin fashion,
when it would be better to make adjacent CPUs submit on the same queue. And
finally, the affinity of the completion queue interrupts is not set to
mirror the cpu<->HQ queue mapping, which is suboptimal.

As such, for when MSIX is supported, expose HW queues to upper layer. We
always use queue index #0 for "internal" commands, i.e. anything which does
not come from the block layer, so omit this from the affinity spreading.

Link: https://lore.kernel.org/r/1654879602-33497-5-git-send-email-john.garry@huawei.com
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2022-06-16 21:45:09 -04:00
..
Makefile scsi: pm80xx: Add tracepoints 2021-11-18 22:26:58 -05:00
pm80xx_hwi.c scsi: pm8001: Expose hardware queues for pm80xx 2022-06-16 21:45:09 -04:00
pm80xx_hwi.h scsi: pm8001: Use libsas internal abort support 2022-03-14 23:33:24 -04:00
pm80xx_tracepoints.c scsi: pm80xx: Add tracepoints 2021-11-18 22:26:58 -05:00
pm80xx_tracepoints.h scsi: pm80xx: Add pm80xx_mpi_build_cmd() tracepoint 2021-11-18 22:26:58 -05:00
pm8001_chips.h
pm8001_ctl.c scsi: pm8001: Fix pm8001_update_flash() local variable type 2022-02-22 21:31:16 -05:00
pm8001_ctl.h scsi: pm8001: Clean up white space 2021-04-12 23:21:26 -04:00
pm8001_defs.h scsi: pm80xx: Increase the number of outstanding I/O supported to 1024 2020-10-07 23:50:04 -04:00
pm8001_hwi.c scsi: pm8001: Set up tags before using them 2022-06-16 21:45:09 -04:00
pm8001_hwi.h scsi: pm8001: Use libsas internal abort support 2022-03-14 23:33:24 -04:00
pm8001_init.c scsi: pm8001: Expose hardware queues for pm80xx 2022-06-16 21:45:09 -04:00
pm8001_sas.c scsi: pm8001: Use non-atomic bitmap ops for tag alloc + free 2022-06-16 21:45:09 -04:00
pm8001_sas.h scsi: pm8001: Expose hardware queues for pm80xx 2022-06-16 21:45:09 -04:00