linux/drivers/scsi/megaraid
Kashyap Desai 9e4bec5b2a scsi: megaraid_sas: mq_poll support
Implement mq_poll interface support in megaraid_sas. This feature
requires shared host tag support in kernel and driver.

The driver can work in non-IRQ mode which means there will not be any MSI-x
vector associated for poll_queues. The MegaRAID hardware has a single
submission queue and multiple reply queues. However, using the shared host
tagset support will enable the driver to simulate multiple hardware queues.

Change driver to allocate some extra reply queues which will be marked as
poll_queues. These poll_queues will not have associated MSI-x vectors. All
I/O completions on these queues will be done through the IOPOLL interface.

megaraid_sas with 8 poll_queues and using the io_uring hiprio=1 setting can
reach 3.2M IOPS with zero interrupts generated by the hardware.

The IOPOLL feature can be enabled using module parameter poll_queues.

Link: https://lore.kernel.org/r/20210215074048.19424-3-kashyap.desai@broadcom.com
Cc: sumit.saxena@broadcom.com
Cc: chandrakanth.patil@broadcom.com
Cc: linux-block@vger.kernel.org
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2021-03-04 17:37:03 -05:00
..
Kconfig.megaraid SCSI misc on 20190709 2019-07-11 15:14:01 -07:00
Makefile scsi: megaraid_sas: Export RAID map through debugfs 2019-06-18 19:46:20 -04:00
mbox_defs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mega_common.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
megaraid_ioctl.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
megaraid_mbox.c scsi: megaraid_mbox: Fix spelling of 'allocated' 2021-01-29 13:38:25 -05:00
megaraid_mbox.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
megaraid_mm.c scsi: megaraid: Fix kdoc comments format 2020-07-08 01:00:30 -04:00
megaraid_mm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
megaraid_sas_base.c scsi: megaraid_sas: mq_poll support 2021-03-04 17:37:03 -05:00
megaraid_sas_debugfs.c scsi: megaraid_sas: Remove unused including <linux/version.h> 2019-06-18 19:46:25 -04:00
megaraid_sas_fp.c scsi: megaraid: Remove set but unused variable 2020-07-08 01:02:11 -04:00
megaraid_sas_fusion.c scsi: megaraid_sas: mq_poll support 2021-03-04 17:37:03 -05:00
megaraid_sas_fusion.h scsi: megaraid_sas: mq_poll support 2021-03-04 17:37:03 -05:00
megaraid_sas.h scsi: megaraid_sas: mq_poll support 2021-03-04 17:37:03 -05:00