linux/drivers/scsi/lpfc
James Smart 04673e38f5 scsi: lpfc: Fix frequency of Release WQE CQEs
The driver controls when the hardware sends completions that communicate
consumption of elements from the WQ. This is done by setting a WQEC bit
on a WQE.

The current driver sets it on every Nth WQE posting. However, the driver
isn't clearing the bit if the WQE is reused. Thus, if the queue depth
isn't evenly divisible by N, with enough time, it can be set on every
element, creating a lot of overhead and risking CQ full conditions.

Correct by clearing the bit when not setting it on an Nth element.

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2018-02-12 11:43:22 -05:00
..
lpfc_attr.c Driver Core updates for 4.16-rc1 2018-02-01 10:00:28 -08:00
lpfc_attr.h scsi: lpfc: Add Buffer to Buffer credit recovery support 2017-08-24 22:29:43 -04:00
lpfc_bsg.c scsi: lpfc: Fix crash receiving ELS while detaching driver 2017-10-02 22:46:33 -04:00
lpfc_bsg.h
lpfc_compat.h
lpfc_crtn.h scsi: lpfc: Fix driver handling of nvme resources during unload 2017-12-04 20:32:55 -05:00
lpfc_ct.c scsi: lpfc: Fix SCSI LUN discovery when SCSI and NVME enabled 2017-12-20 21:11:46 -05:00
lpfc_debugfs.c scsi: lpfc: Beef up stat counters for debug 2017-12-20 21:11:48 -05:00
lpfc_debugfs.h scsi: lpfc: avoid false-positive gcc-8 warning 2017-08-25 18:26:52 -04:00
lpfc_disc.h scsi: lpfc: Correct driver deregistrations with host nvme transport 2017-12-04 20:32:54 -05:00
lpfc_els.c scsi: lpfc: fix a couple of minor indentation issues 2018-01-03 22:53:46 -05:00
lpfc_hbadisc.c scsi: lpfc: correct port registrations with nvme_fc 2017-12-04 20:32:54 -05:00
lpfc_hw4.h scsi: lpfc: Expand WQE capability of every NVME hardware queue 2017-12-04 20:32:53 -05:00
lpfc_hw.h scsi: lpfc: Add Buffer to Buffer credit recovery support 2017-08-24 22:29:43 -04:00
lpfc_ids.h
lpfc_init.c scsi: lpfc: Increase SCSI CQ and WQ sizes. 2017-12-20 21:11:46 -05:00
lpfc_logmsg.h
lpfc_mbox.c scsi: lpfc: Add Buffer to Buffer credit recovery support 2017-08-24 22:29:43 -04:00
lpfc_mem.c scsi: lpfc: Use after free in lpfc_rq_buf_free() 2017-11-28 23:46:06 -05:00
lpfc_nl.h
lpfc_nportdisc.c scsi: lpfc: Fix issues connecting with nvme initiator 2017-12-20 21:11:47 -05:00
lpfc_nvme.c scsi: lpfc: Beef up stat counters for debug 2017-12-20 21:11:48 -05:00
lpfc_nvme.h scsi: lpfc: Beef up stat counters for debug 2017-12-20 21:11:48 -05:00
lpfc_nvmet.c scsi: lpfc: Beef up stat counters for debug 2017-12-20 21:11:48 -05:00
lpfc_nvmet.h scsi: lpfc: Beef up stat counters for debug 2017-12-20 21:11:48 -05:00
lpfc_scsi.c scsi: lpfc: Convert timers to use timer_setup() 2017-11-01 11:27:07 -07:00
lpfc_scsi.h
lpfc_sli4.h scsi: lpfc: Increase SCSI CQ and WQ sizes. 2017-12-20 21:11:46 -05:00
lpfc_sli.c scsi: lpfc: Fix frequency of Release WQE CQEs 2018-02-12 11:43:22 -05:00
lpfc_sli.h
lpfc_version.h scsi: lpfc: update driver version to 11.4.0.6 2017-12-20 21:11:48 -05:00
lpfc_vport.c scsi: lpfc: Disable NPIV support if NVME is enabled 2017-10-02 22:46:39 -04:00
lpfc_vport.h
lpfc.h scsi: lpfc: Fix random heartbeat timeouts during heavy IO 2017-12-20 21:11:44 -05:00
Makefile