Skip to contentSkip to conversation

lpfc 8.3.44: Fixed IO hang when in msi mode.

PATCH Superseded James Smart 2 participants 3 messages Dec 2, 2013 – Dec 17, 2013

Subsystems (2)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/7 lpfc 8.3.44: Fixed IO hang when in msi mode.

Fixed IO hang when in msi mode.

---

 lpfc_scsi.c |   18 ++++++++++++++++++
 lpfc_sli.c  |    3 ++-
 2 files changed, 20 insertions(+), 1 deletion(-)
drivers/scsi/lpfc/lpfc_scsi.c +18 -0
diff -upNr a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
@@ -4782,6 +4782,24 @@ lpfc_queuecommand(struct Scsi_Host *shos
 				  &lpfc_cmd->cur_iocbq, SLI_IOCB_RET_IOCB);
 	if (err) {
 		atomic_dec(&ndlp->cmd_pending);
+		lpfc_printf_vlog(vport, KERN_INFO, LOG_FCP,
+				 "3376 FCP could not issue IOCB err %x"
+				 "FCP cmd x%x <%d/%d> "
+				 "sid: x%x did: x%x oxid: x%x "
+				 "Data: x%x x%x x%x x%x\n",
+				 err, cmnd->cmnd[0],
+				 cmnd->device ? cmnd->device->id : 0xffff,
+                                 cmnd->device ? cmnd->device->lun : 0xffff,
+                                 vport->fc_myDID, ndlp->nlp_DID,
+                                 phba->sli_rev == LPFC_SLI_REV4 ?
+                                 lpfc_cmd->cur_iocbq.sli4_xritag : 0xffff,
+                                 lpfc_cmd->cur_iocbq.iocb.ulpContext,
+                                 lpfc_cmd->cur_iocbq.iocb.ulpIoTag,
+                                 lpfc_cmd->cur_iocbq.iocb.ulpTimeout,
+                                 (uint32_t)
+                                  (cmnd->request->timeout / 1000));
+
+
 		goto out_host_busy_free_buf;
 	}
 	if (phba->cfg_poll & ENABLE_FCP_RING_POLLING) {
drivers/scsi/lpfc/lpfc_sli.c +2 -1
diff -upNr a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
@@ -8032,7 +8032,8 @@ lpfc_sli4_scmd_to_wqidx_distr(struct lpf
 	struct lpfc_vector_map_info *cpup;
 	int chann, cpu;
 
-	if (phba->cfg_fcp_io_sched == LPFC_FCP_SCHED_BY_CPU) {
+	if (phba->cfg_fcp_io_sched == LPFC_FCP_SCHED_BY_CPU
+	    && phba->cfg_fcp_io_channel > 1) {
 		cpu = smp_processor_id();
 		if (cpu < phba->sli4_hba.num_present_cpu) {
 			cpup = phba->sli4_hba.cpu_map;
maintainer
#1 lore raw
Quoted 4 lines · James Smart

Fixed IO hang when in msi mode.

There seems to be a lot of tab vs space checkpatch warnings in this series:

ERROR: code indent should use tabs where possible
#24: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4792:
+ cmnd->device ? cmnd->device->lun :
0xffff,$

WARNING: please, no spaces at the start of a line
#24: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4792:
+ cmnd->device ? cmnd->device->lun :
0xffff,$

ERROR: code indent should use tabs where possible
#25: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4793:
+ vport->fc_myDID, ndlp->nlp_DID,$

WARNING: please, no spaces at the start of a line
#25: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4793:
+ vport->fc_myDID, ndlp->nlp_DID,$

ERROR: code indent should use tabs where possible
#26: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4794:
+ phba->sli_rev == LPFC_SLI_REV4 ?$

WARNING: please, no spaces at the start of a line
#26: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4794:
+ phba->sli_rev == LPFC_SLI_REV4 ?$

ERROR: code indent should use tabs where possible
#27: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4795:
+ lpfc_cmd->cur_iocbq.sli4_xritag :
0xffff,$

WARNING: please, no spaces at the start of a line
#27: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4795:
+ lpfc_cmd->cur_iocbq.sli4_xritag :
0xffff,$

ERROR: code indent should use tabs where possible
#28: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4796:
+ lpfc_cmd->cur_iocbq.iocb.ulpContext,$

WARNING: please, no spaces at the start of a line
#28: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4796:
+ lpfc_cmd->cur_iocbq.iocb.ulpContext,$

ERROR: code indent should use tabs where possible
#29: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4797:
+ lpfc_cmd->cur_iocbq.iocb.ulpIoTag,$

WARNING: please, no spaces at the start of a line
#29: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4797:
+ lpfc_cmd->cur_iocbq.iocb.ulpIoTag,$

ERROR: code indent should use tabs where possible
#30: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4798:
+ lpfc_cmd->cur_iocbq.iocb.ulpTimeout,$

WARNING: please, no spaces at the start of a line
#30: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4798:
+ lpfc_cmd->cur_iocbq.iocb.ulpTimeout,$

ERROR: code indent should use tabs where possible
#31: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4799:
+ (uint32_t)$

WARNING: please, no spaces at the start of a line
#31: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4799:
+ (uint32_t)$

ERROR: code indent should use tabs where possible
#32: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4800:
+ (cmnd->request->timeout / 1000));$

WARNING: please, no spaces at the start of a line
#32: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4800:
+ (cmnd->request->timeout / 1000));$

total: 9 errors, 9 warnings, 33 lines checked

NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or
scripts/cleanfile

I don't think it's your mailer otherwise the patch wouldn't have applied. Could you fix and resend the series?

Thanks,

James

#2 lore raw

yep. Sorry. Will resend shortly.

-- james

Quoted 100 lines · James Bottomley
Quoted 4 lines · James Smart

Fixed IO hang when in msi mode.

There seems to be a lot of tab vs space checkpatch warnings in this series:

ERROR: code indent should use tabs where possible
#24: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4792:
+ cmnd->device ? cmnd->device->lun :
0xffff,$

WARNING: please, no spaces at the start of a line
#24: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4792:
+ cmnd->device ? cmnd->device->lun :
0xffff,$

ERROR: code indent should use tabs where possible
#25: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4793:
+ vport->fc_myDID, ndlp->nlp_DID,$

WARNING: please, no spaces at the start of a line
#25: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4793:
+ vport->fc_myDID, ndlp->nlp_DID,$

ERROR: code indent should use tabs where possible
#26: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4794:
+ phba->sli_rev == LPFC_SLI_REV4 ?$

WARNING: please, no spaces at the start of a line
#26: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4794:
+ phba->sli_rev == LPFC_SLI_REV4 ?$

ERROR: code indent should use tabs where possible
#27: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4795:
+ lpfc_cmd->cur_iocbq.sli4_xritag :
0xffff,$

WARNING: please, no spaces at the start of a line
#27: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4795:
+ lpfc_cmd->cur_iocbq.sli4_xritag :
0xffff,$

ERROR: code indent should use tabs where possible
#28: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4796:
+ lpfc_cmd->cur_iocbq.iocb.ulpContext,$

WARNING: please, no spaces at the start of a line
#28: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4796:
+ lpfc_cmd->cur_iocbq.iocb.ulpContext,$

ERROR: code indent should use tabs where possible
#29: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4797:
+ lpfc_cmd->cur_iocbq.iocb.ulpIoTag,$

WARNING: please, no spaces at the start of a line
#29: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4797:
+ lpfc_cmd->cur_iocbq.iocb.ulpIoTag,$

ERROR: code indent should use tabs where possible
#30: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4798:
+ lpfc_cmd->cur_iocbq.iocb.ulpTimeout,$

WARNING: please, no spaces at the start of a line
#30: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4798:
+ lpfc_cmd->cur_iocbq.iocb.ulpTimeout,$

ERROR: code indent should use tabs where possible
#31: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4799:
+ (uint32_t)$

WARNING: please, no spaces at the start of a line
#31: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4799:
+ (uint32_t)$

ERROR: code indent should use tabs where possible
#32: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4800:
+ (cmnd->request->timeout / 1000));$

WARNING: please, no spaces at the start of a line
#32: FILE: drivers/scsi/lpfc/lpfc_scsi.c:4800:
+ (cmnd->request->timeout / 1000));$

total: 9 errors, 9 warnings, 33 lines checked

NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or
scripts/cleanfile

I don't think it's your mailer otherwise the patch wouldn't have applied. Could you fix and resend the series?

Thanks,

James