• Kashyap Desai's avatar
    scsi: megaraid_sas: mq_poll support · 9e4bec5b
    Kashyap Desai authored
    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: default avatarHannes Reinecke <hare@suse.de>
    Signed-off-by: default avatarKashyap Desai <kashyap.desai@broadcom.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    9e4bec5b
megaraid_sas_fusion.c 154 KB