scsi: megaraid_sas: Enable coalescing for high IOPS queues

Driver should enable interrupt coalescing (during driver load and after
Controller Reset) for High IOPS queues by masking appropriate bits in IOC
INIT frame.

Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com>
Signed-off-by: Chandrakanth Patil <chandrakanth.patil@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Chandrakanth Patil 2019-06-25 16:34:32 +05:30 committed by Martin K. Petersen
parent 132147d7f6
commit ea836f40f8
2 changed files with 9 additions and 1 deletions

View File

@ -1819,7 +1819,7 @@ struct megasas_init_frame {
__le32 pad_0; /*0Ch */ __le32 pad_0; /*0Ch */
__le16 flags; /*10h */ __le16 flags; /*10h */
__le16 reserved_3; /*12h */ __le16 replyqueue_mask; /*12h */
__le32 data_xfer_len; /*14h */ __le32 data_xfer_len; /*14h */
__le32 queue_info_new_phys_addr_lo; /*18h */ __le32 queue_info_new_phys_addr_lo; /*18h */

View File

@ -1186,6 +1186,14 @@ megasas_ioc_init_fusion(struct megasas_instance *instance)
cpu_to_le32(lower_32_bits(ioc_init_handle)); cpu_to_le32(lower_32_bits(ioc_init_handle));
init_frame->data_xfer_len = cpu_to_le32(sizeof(struct MPI2_IOC_INIT_REQUEST)); init_frame->data_xfer_len = cpu_to_le32(sizeof(struct MPI2_IOC_INIT_REQUEST));
/*
* Each bit in replyqueue_mask represents one group of MSI-x vectors
* (each group has 8 vectors)
*/
if (instance->balanced_mode)
init_frame->replyqueue_mask =
cpu_to_le16(~(~0 << instance->low_latency_index_start / 8));
req_desc.u.low = cpu_to_le32(lower_32_bits(cmd->frame_phys_addr)); req_desc.u.low = cpu_to_le32(lower_32_bits(cmd->frame_phys_addr));
req_desc.u.high = cpu_to_le32(upper_32_bits(cmd->frame_phys_addr)); req_desc.u.high = cpu_to_le32(upper_32_bits(cmd->frame_phys_addr));
req_desc.MFAIo.RequestFlags = req_desc.MFAIo.RequestFlags =