James/linux-scsi, The following patch for megaraid_sas adds a module parameter for configurable MSI-X vector count. Signed-off-by: Adam Radford <aradford@xxxxxxxxx> diff -Naur scsi-misc/drivers/scsi/megaraid/megaraid_sas_base.c scsi-misc.new/drivers/scsi/megaraid/megaraid_sas_base.c --- scsi-misc/drivers/scsi/megaraid/megaraid_sas_base.c 2012-10-01 18:03:42.000000000 -0700 +++ scsi-misc.new/drivers/scsi/megaraid/megaraid_sas_base.c 2012-10-01 18:05:20.831864155 -0700 @@ -71,6 +71,10 @@ module_param(msix_disable, int, S_IRUGO); MODULE_PARM_DESC(msix_disable, "Disable MSI-X interrupt handling. Default: 0"); +static unsigned int msix_vectors; +module_param(msix_vectors, int, S_IRUGO); +MODULE_PARM_DESC(msix_vectors, "MSI-X max vector count. Default: Set by FW"); + static int throttlequeuedepth = MEGASAS_THROTTLE_QUEUE_DEPTH; module_param(throttlequeuedepth, int, S_IRUGO); MODULE_PARM_DESC(throttlequeuedepth, @@ -3520,6 +3524,10 @@ instance->msix_vectors = (readl(&instance->reg_set-> outbound_scratch_pad_2 ) & 0x1F) + 1; + if (msix_vectors) + instance->msix_vectors = + min(msix_vectors, + instance->msix_vectors); } else instance->msix_vectors = 1; /* Don't bother allocating more MSI-X vectors than cpus */
Attachment:
megaraid_sas.patch2
Description: Binary data