Message ID | 20211021073208.27582-9-njavali@marvell.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | qla2xxx - misc driver and EDIF bug fixes | expand |
> On Oct 21, 2021, at 2:32 AM, Nilesh Javali <njavali@marvell.com> wrote: > > From: Quinn Tran <qutran@marvell.com> > > Modify trace messages for additional debugability. > > Signed-off-by: Quinn Tran <qutran@marvell.com> > Signed-off-by: Nilesh Javali <njavali@marvell.com> > --- > drivers/scsi/qla2xxx/qla_def.h | 4 ++-- > drivers/scsi/qla2xxx/qla_edif.c | 6 +++++- > drivers/scsi/qla2xxx/qla_init.c | 15 +++++++++------ > drivers/scsi/qla2xxx/qla_isr.c | 4 ++++ > 4 files changed, 20 insertions(+), 9 deletions(-) > > diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h > index 8924eeb9367d..9ebf4a234d9a 100644 > --- a/drivers/scsi/qla2xxx/qla_def.h > +++ b/drivers/scsi/qla2xxx/qla_def.h > @@ -639,9 +639,9 @@ struct qla_els_pt_arg { > u8 els_opcode; > u8 vp_idx; > __le16 nport_handle; > - u16 control_flags; > + u16 control_flags, ox_id; > __le32 rx_xchg_address; > - port_id_t did; > + port_id_t did, sid; > u32 tx_len, tx_byte_count, rx_len, rx_byte_count; > dma_addr_t tx_addr, rx_addr; > > diff --git a/drivers/scsi/qla2xxx/qla_edif.c b/drivers/scsi/qla2xxx/qla_edif.c > index ca3b947770b9..bb3a1afb86a8 100644 > --- a/drivers/scsi/qla2xxx/qla_edif.c > +++ b/drivers/scsi/qla2xxx/qla_edif.c > @@ -1765,7 +1765,8 @@ qla_els_reject_iocb(scsi_qla_host_t *vha, struct qla_qpair *qp, > qla_els_pt_iocb(vha, els_iocb, a); > > ql_dbg(ql_dbg_edif, vha, 0x0183, > - "Sending ELS reject...\n"); > + "Sending ELS reject ox_id %04x s:%06x -> d:%06x\n", > + a->ox_id, a->sid.b24, a->did.b24); > ql_dump_buffer(ql_dbg_edif + ql_dbg_verbose, vha, 0x0185, > vha->hw->elsrej.c, sizeof(*vha->hw->elsrej.c)); > /* flush iocb to mem before notifying hw doorbell */ > @@ -2362,6 +2363,7 @@ void qla24xx_auth_els(scsi_qla_host_t *vha, void **pkt, struct rsp_que **rsp) > a.tx_addr = vha->hw->elsrej.cdma; > a.vp_idx = vha->vp_idx; > a.control_flags = EPD_ELS_RJT; > + a.ox_id = le16_to_cpu(p->ox_id); > > sid = p->s_id[0] | (p->s_id[1] << 8) | (p->s_id[2] << 16); > > @@ -2411,6 +2413,8 @@ void qla24xx_auth_els(scsi_qla_host_t *vha, void **pkt, struct rsp_que **rsp) > purex->pur_info.pur_did.b.al_pa = p->d_id[0]; > purex->pur_info.vp_idx = p->vp_idx; > > + a.sid = purex->pur_info.pur_did; > + > rc = __qla_copy_purex_to_buffer(vha, pkt, rsp, purex->msgp, > purex->msgp_len); > if (rc) { > diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c > index 2ccdc76cf0d9..dbffc59e1677 100644 > --- a/drivers/scsi/qla2xxx/qla_init.c > +++ b/drivers/scsi/qla2xxx/qla_init.c > @@ -333,9 +333,6 @@ qla2x00_async_login(struct scsi_qla_host *vha, fc_port_t *fcport, > vha->e_dbell.db_flags & EDB_ACTIVE) { > lio->u.logio.flags |= > (SRB_LOGIN_FCSP | SRB_LOGIN_SKIP_PRLI); > - ql_dbg(ql_dbg_disc, vha, 0x2072, > - "Async-login: w/ FCSP %8phC hdl=%x, loopid=%x portid=%06x\n", > - fcport->port_name, sp->handle, fcport->loop_id, fcport->d_id.b24); > } else { > lio->u.logio.flags |= SRB_LOGIN_COND_PLOGI; > } > @@ -344,12 +341,14 @@ qla2x00_async_login(struct scsi_qla_host *vha, fc_port_t *fcport, > if (NVME_TARGET(vha->hw, fcport)) > lio->u.logio.flags |= SRB_LOGIN_SKIP_PRLI; > > + rval = qla2x00_start_sp(sp); > + > ql_dbg(ql_dbg_disc, vha, 0x2072, > - "Async-login - %8phC hdl=%x, loopid=%x portid=%06x retries=%d.\n", > + "Async-login - %8phC hdl=%x, loopid=%x portid=%06x retries=%d %s.\n", > fcport->port_name, sp->handle, fcport->loop_id, > - fcport->d_id.b24, fcport->login_retry); > + fcport->d_id.b24, fcport->login_retry, > + lio->u.logio.flags & SRB_LOGIN_FCSP ? "FCSP" : ""); > > - rval = qla2x00_start_sp(sp); > if (rval != QLA_SUCCESS) { > fcport->flags |= FCF_LOGIN_NEEDED; > set_bit(RELOGIN_NEEDED, &vha->dpc_flags); > @@ -5867,6 +5866,10 @@ void qla_register_fcport_fn(struct work_struct *work) > > qla2x00_update_fcport(fcport->vha, fcport); > > + ql_dbg(ql_dbg_disc, fcport->vha, 0x911e, > + "%s rscn gen %d/%d next DS %d\n", __func__, > + rscn_gen, fcport->rscn_gen, fcport->next_disc_state); > + > if (rscn_gen != fcport->rscn_gen) { > /* RSCN(s) came in while registration */ > switch (fcport->next_disc_state) { > diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c > index b26f2699adb2..4e1dffa329f1 100644 > --- a/drivers/scsi/qla2xxx/qla_isr.c > +++ b/drivers/scsi/qla2xxx/qla_isr.c > @@ -2233,6 +2233,10 @@ qla24xx_els_ct_entry(scsi_qla_host_t *v, struct req_que *req, > } > > } else if (comp_status == CS_PORT_LOGGED_OUT) { > + ql_dbg(ql_dbg_disc, vha, 0x911e, > + "%s %d sche delete\n”, ^^^^^ Please use “scheduled” here. Or better yet more meaningful message so its easy to read during debugging. > + __func__, __LINE__); > + > els->u.els_plogi.len = 0; > res = DID_IMM_RETRY << 16; > qlt_schedule_sess_for_deletion(sp->fcport); > -- > 2.19.0.rc0 > Once small nit above is fixed, feel free to add Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com> -- Himanshu Madhani Oracle Linux Engineering
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 8924eeb9367d..9ebf4a234d9a 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -639,9 +639,9 @@ struct qla_els_pt_arg { u8 els_opcode; u8 vp_idx; __le16 nport_handle; - u16 control_flags; + u16 control_flags, ox_id; __le32 rx_xchg_address; - port_id_t did; + port_id_t did, sid; u32 tx_len, tx_byte_count, rx_len, rx_byte_count; dma_addr_t tx_addr, rx_addr; diff --git a/drivers/scsi/qla2xxx/qla_edif.c b/drivers/scsi/qla2xxx/qla_edif.c index ca3b947770b9..bb3a1afb86a8 100644 --- a/drivers/scsi/qla2xxx/qla_edif.c +++ b/drivers/scsi/qla2xxx/qla_edif.c @@ -1765,7 +1765,8 @@ qla_els_reject_iocb(scsi_qla_host_t *vha, struct qla_qpair *qp, qla_els_pt_iocb(vha, els_iocb, a); ql_dbg(ql_dbg_edif, vha, 0x0183, - "Sending ELS reject...\n"); + "Sending ELS reject ox_id %04x s:%06x -> d:%06x\n", + a->ox_id, a->sid.b24, a->did.b24); ql_dump_buffer(ql_dbg_edif + ql_dbg_verbose, vha, 0x0185, vha->hw->elsrej.c, sizeof(*vha->hw->elsrej.c)); /* flush iocb to mem before notifying hw doorbell */ @@ -2362,6 +2363,7 @@ void qla24xx_auth_els(scsi_qla_host_t *vha, void **pkt, struct rsp_que **rsp) a.tx_addr = vha->hw->elsrej.cdma; a.vp_idx = vha->vp_idx; a.control_flags = EPD_ELS_RJT; + a.ox_id = le16_to_cpu(p->ox_id); sid = p->s_id[0] | (p->s_id[1] << 8) | (p->s_id[2] << 16); @@ -2411,6 +2413,8 @@ void qla24xx_auth_els(scsi_qla_host_t *vha, void **pkt, struct rsp_que **rsp) purex->pur_info.pur_did.b.al_pa = p->d_id[0]; purex->pur_info.vp_idx = p->vp_idx; + a.sid = purex->pur_info.pur_did; + rc = __qla_copy_purex_to_buffer(vha, pkt, rsp, purex->msgp, purex->msgp_len); if (rc) { diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 2ccdc76cf0d9..dbffc59e1677 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -333,9 +333,6 @@ qla2x00_async_login(struct scsi_qla_host *vha, fc_port_t *fcport, vha->e_dbell.db_flags & EDB_ACTIVE) { lio->u.logio.flags |= (SRB_LOGIN_FCSP | SRB_LOGIN_SKIP_PRLI); - ql_dbg(ql_dbg_disc, vha, 0x2072, - "Async-login: w/ FCSP %8phC hdl=%x, loopid=%x portid=%06x\n", - fcport->port_name, sp->handle, fcport->loop_id, fcport->d_id.b24); } else { lio->u.logio.flags |= SRB_LOGIN_COND_PLOGI; } @@ -344,12 +341,14 @@ qla2x00_async_login(struct scsi_qla_host *vha, fc_port_t *fcport, if (NVME_TARGET(vha->hw, fcport)) lio->u.logio.flags |= SRB_LOGIN_SKIP_PRLI; + rval = qla2x00_start_sp(sp); + ql_dbg(ql_dbg_disc, vha, 0x2072, - "Async-login - %8phC hdl=%x, loopid=%x portid=%06x retries=%d.\n", + "Async-login - %8phC hdl=%x, loopid=%x portid=%06x retries=%d %s.\n", fcport->port_name, sp->handle, fcport->loop_id, - fcport->d_id.b24, fcport->login_retry); + fcport->d_id.b24, fcport->login_retry, + lio->u.logio.flags & SRB_LOGIN_FCSP ? "FCSP" : ""); - rval = qla2x00_start_sp(sp); if (rval != QLA_SUCCESS) { fcport->flags |= FCF_LOGIN_NEEDED; set_bit(RELOGIN_NEEDED, &vha->dpc_flags); @@ -5867,6 +5866,10 @@ void qla_register_fcport_fn(struct work_struct *work) qla2x00_update_fcport(fcport->vha, fcport); + ql_dbg(ql_dbg_disc, fcport->vha, 0x911e, + "%s rscn gen %d/%d next DS %d\n", __func__, + rscn_gen, fcport->rscn_gen, fcport->next_disc_state); + if (rscn_gen != fcport->rscn_gen) { /* RSCN(s) came in while registration */ switch (fcport->next_disc_state) { diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index b26f2699adb2..4e1dffa329f1 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c @@ -2233,6 +2233,10 @@ qla24xx_els_ct_entry(scsi_qla_host_t *v, struct req_que *req, } } else if (comp_status == CS_PORT_LOGGED_OUT) { + ql_dbg(ql_dbg_disc, vha, 0x911e, + "%s %d sche delete\n", + __func__, __LINE__); + els->u.els_plogi.len = 0; res = DID_IMM_RETRY << 16; qlt_schedule_sess_for_deletion(sp->fcport);