summaryrefslogtreecommitdiffstats
path: root/drivers/slimbus
diff options
context:
space:
mode:
authorJames Smart <jsmart2021@gmail.com>2019-08-16 04:36:49 +0200
committerMartin K. Petersen <martin.petersen@oracle.com>2019-08-20 04:14:10 +0200
commit77ffd3465ba837e9dc714e17b014e77b2eae765a (patch)
treee7600f3b593e0dc5019efb7b013cd15785319d6c /drivers/slimbus
parentscsi: ufs: Fix NULL pointer dereference in ufshcd_config_vreg_hpm() (diff)
downloadlinux-77ffd3465ba837e9dc714e17b014e77b2eae765a.tar.xz
linux-77ffd3465ba837e9dc714e17b014e77b2eae765a.zip
scsi: lpfc: Mitigate high memory pre-allocation by SCSI-MQ
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>
Diffstat (limited to 'drivers/slimbus')
0 files changed, 0 insertions, 0 deletions