mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-11-22 23:29:16 +00:00
When SCSI-MQ is enabled, the SCSI-MQ layers will do pre-allocation of MQ resources based on shost values set by the driver. In newer cases of the driver, which attempts to set nr_hw_queues to the cpu count, the multipliers become excessive, with a single shost having SCSI-MQ pre-allocation reaching into the multiple GBytes range. NPIV, which creates additional shosts, only multiply this overhead. On lower-memory systems, this can exhaust system memory very quickly, resulting in a system crash or failures in the driver or elsewhere due to low memory conditions. After testing several scenarios, the situation can be mitigated by limiting the value set in shost->nr_hw_queues to 4. Although the shost values were changed, the driver still had per-cpu hardware queues of its own that allowed parallelization per-cpu. Testing revealed that even with the smallish number for nr_hw_queues for SCSI-MQ, performance levels remained near maximum with the within-driver affiinitization. A module parameter was created to allow the value set for the nr_hw_queues to be tunable. Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com> Signed-off-by: James Smart <jsmart2021@gmail.com> Reviewed-by: Ming Lei <ming.lei@redhat.com> Reviewed-by: Ewan D. Milne <emilne@redhat.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> |
||
|---|---|---|
| .. | ||
| lpfc_attr.c | ||
| lpfc_attr.h | ||
| lpfc_bsg.c | ||
| lpfc_bsg.h | ||
| lpfc_compat.h | ||
| lpfc_crtn.h | ||
| lpfc_ct.c | ||
| lpfc_debugfs.c | ||
| lpfc_debugfs.h | ||
| lpfc_disc.h | ||
| lpfc_els.c | ||
| lpfc_hbadisc.c | ||
| lpfc_hw4.h | ||
| lpfc_hw.h | ||
| lpfc_ids.h | ||
| lpfc_init.c | ||
| lpfc_logmsg.h | ||
| lpfc_mbox.c | ||
| lpfc_mem.c | ||
| lpfc_nl.h | ||
| lpfc_nportdisc.c | ||
| lpfc_nvme.c | ||
| lpfc_nvme.h | ||
| lpfc_nvmet.c | ||
| lpfc_nvmet.h | ||
| lpfc_scsi.c | ||
| lpfc_scsi.h | ||
| lpfc_sli4.h | ||
| lpfc_sli.c | ||
| lpfc_sli.h | ||
| lpfc_version.h | ||
| lpfc_vport.c | ||
| lpfc_vport.h | ||
| lpfc.h | ||
| Makefile | ||