mirror of
https://github.com/torvalds/linux.git
synced 2024-12-15 23:51:46 +00:00
scsi: lpfc: Add more logging of cmd and cqe information for aborted NVMe cmds
When an NVMe command is aborted or completes with an ERSP, log the opcode and command ID fields to help provide more detail on the failed command. Link: https://lore.kernel.org/r/20220603174329.63777-8-jsmart2021@gmail.com Co-developed-by: Justin Tee <justin.tee@broadcom.com> Signed-off-by: Justin Tee <justin.tee@broadcom.com> Signed-off-by: James Smart <jsmart2021@gmail.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
336d636154
commit
ea7bd1f393
@ -1065,25 +1065,37 @@ lpfc_nvme_io_cmd_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pwqeIn,
|
||||
nCmd->rcv_rsplen = wcqe->parameter;
|
||||
nCmd->status = 0;
|
||||
|
||||
/* Get the NVME cmd details for this unique error. */
|
||||
cp = (struct nvme_fc_cmd_iu *)nCmd->cmdaddr;
|
||||
ep = (struct nvme_fc_ersp_iu *)nCmd->rspaddr;
|
||||
|
||||
/* Check if this is really an ERSP */
|
||||
if (nCmd->rcv_rsplen == LPFC_NVME_ERSP_LEN) {
|
||||
lpfc_ncmd->status = IOSTAT_SUCCESS;
|
||||
lpfc_ncmd->result = 0;
|
||||
|
||||
lpfc_printf_vlog(vport, KERN_INFO, LOG_NVME,
|
||||
"6084 NVME Completion ERSP: "
|
||||
"xri %x placed x%x\n",
|
||||
lpfc_ncmd->cur_iocbq.sli4_xritag,
|
||||
wcqe->total_data_placed);
|
||||
"6084 NVME FCP_ERR ERSP: "
|
||||
"xri %x placed x%x opcode x%x cmd_id "
|
||||
"x%x cqe_status x%x\n",
|
||||
lpfc_ncmd->cur_iocbq.sli4_xritag,
|
||||
wcqe->total_data_placed,
|
||||
cp->sqe.common.opcode,
|
||||
cp->sqe.common.command_id,
|
||||
ep->cqe.status);
|
||||
break;
|
||||
}
|
||||
lpfc_printf_vlog(vport, KERN_ERR, LOG_TRACE_EVENT,
|
||||
"6081 NVME Completion Protocol Error: "
|
||||
"xri %x status x%x result x%x "
|
||||
"placed x%x\n",
|
||||
"placed x%x opcode x%x cmd_id x%x, "
|
||||
"cqe_status x%x\n",
|
||||
lpfc_ncmd->cur_iocbq.sli4_xritag,
|
||||
lpfc_ncmd->status, lpfc_ncmd->result,
|
||||
wcqe->total_data_placed);
|
||||
wcqe->total_data_placed,
|
||||
cp->sqe.common.opcode,
|
||||
cp->sqe.common.command_id,
|
||||
ep->cqe.status);
|
||||
break;
|
||||
case IOSTAT_LOCAL_REJECT:
|
||||
/* Let fall through to set command final state. */
|
||||
@ -1842,6 +1854,7 @@ lpfc_nvme_fcp_abort(struct nvme_fc_local_port *pnvme_lport,
|
||||
struct lpfc_nvme_fcpreq_priv *freqpriv;
|
||||
unsigned long flags;
|
||||
int ret_val;
|
||||
struct nvme_fc_cmd_iu *cp;
|
||||
|
||||
/* Validate pointers. LLDD fault handling with transport does
|
||||
* have timing races.
|
||||
@ -1965,10 +1978,16 @@ lpfc_nvme_fcp_abort(struct nvme_fc_local_port *pnvme_lport,
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get Command Id from cmd to plug into response. This
|
||||
* code is not needed in the next NVME Transport drop.
|
||||
*/
|
||||
cp = (struct nvme_fc_cmd_iu *)lpfc_nbuf->nvmeCmd->cmdaddr;
|
||||
lpfc_printf_vlog(vport, KERN_INFO, LOG_NVME_ABTS,
|
||||
"6138 Transport Abort NVME Request Issued for "
|
||||
"ox_id x%x\n",
|
||||
nvmereq_wqe->sli4_xritag);
|
||||
"ox_id x%x nvme opcode x%x nvme cmd_id x%x\n",
|
||||
nvmereq_wqe->sli4_xritag, cp->sqe.common.opcode,
|
||||
cp->sqe.common.command_id);
|
||||
return;
|
||||
|
||||
out_unlock:
|
||||
|
Loading…
Reference in New Issue
Block a user