kernel_samsung_a53x/drivers/scsi/lpfc
Justin Tee c547fceef6 scsi: lpfc: Update lpfc_ramp_down_queue_handler() logic
[ Upstream commit bb011631435c705cdeddca68d5c85fd40a4320f9 ]

Typically when an out of resource CQE status is detected, the
lpfc_ramp_down_queue_handler() logic is called to help reduce I/O load by
reducing an sdev's queue_depth.

However, the current lpfc_rampdown_queue_depth() logic does not help reduce
queue_depth.  num_cmd_success is never updated and is always zero, which
means new_queue_depth will always be set to sdev->queue_depth.  So,
new_queue_depth = sdev->queue_depth - new_queue_depth always sets
new_queue_depth to zero.  And, scsi_change_queue_depth(sdev, 0) is
essentially a no-op.

Change the lpfc_ramp_down_queue_handler() logic to set new_queue_depth
equal to sdev->queue_depth subtracted from number of times num_rsrc_err was
incremented.  If num_rsrc_err is >= sdev->queue_depth, then set
new_queue_depth equal to 1.  Eventually, the frequency of Good_Status
frames will signal SCSI upper layer to auto increase the queue_depth back
to the driver default of 64 via scsi_handle_queue_ramp_up().

Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Link: https://lore.kernel.org/r/20240305200503.57317-5-justintee8345@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-19 11:32:43 +01:00
..
lpfc.h scsi: lpfc: Update lpfc_ramp_down_queue_handler() logic 2024-11-19 11:32:43 +01:00
lpfc_attr.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_attr.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_bsg.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_bsg.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_compat.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_crtn.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_ct.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_debugfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_debugfs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_disc.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_els.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_hbadisc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_hw.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_hw4.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_ids.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_init.c scsi: lpfc: Fix possible file string name overflow when updating firmware 2024-11-18 12:13:12 +01:00
lpfc_logmsg.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_mbox.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_mem.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_nl.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_nportdisc.c scsi: lpfc: Fix possible memory leak in lpfc_rcv_padisc() 2024-11-19 09:23:14 +01:00
lpfc_nvme.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_nvme.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_nvmet.c scsi: lpfc: Correct size for wqe for memset() 2024-11-19 09:22:43 +01:00
lpfc_scsi.c scsi: lpfc: Update lpfc_ramp_down_queue_handler() logic 2024-11-19 11:32:43 +01:00
lpfc_scsi.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_sli.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_sli.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_sli4.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_version.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_vport.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpfc_vport.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00