diff options
author | Changyuan Lyu <changyuanl@google.com> | 2021-11-15 22:57:50 +0100 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2021-11-19 04:26:58 +0100 |
commit | 0137b129f215fb5d0209c5c91984b2f44f2d98cc (patch) | |
tree | 6472acba349a9641a0bbef102afd417b0eed52a9 /drivers/scsi/pm8001 | |
parent | scsi: pm80xx: Add tracepoints (diff) | |
download | linux-0137b129f215fb5d0209c5c91984b2f44f2d98cc.tar.xz linux-0137b129f215fb5d0209c5c91984b2f44f2d98cc.zip |
scsi: pm80xx: Add pm80xx_mpi_build_cmd() tracepoint
pm8001_mpi_build_cmd() prepares and sends all commands to a controller.
Having pm80xx_mpi_build_cmd tracepoint can help us with latency issues.
this patch depends on patch "scsi: pm80xx: Add tracepoints".
Link: https://lore.kernel.org/r/20211115215750.131696-3-changyuanl@google.com
Acked-by: Jack Wang <jinpu.wang@ionos.com>
Co-developed-by: Igor Pylypiv <ipylypiv@google.com>
Signed-off-by: Igor Pylypiv <ipylypiv@google.com>
Signed-off-by: Changyuan Lyu <changyuanl@google.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/pm8001')
-rw-r--r-- | drivers/scsi/pm8001/pm8001_hwi.c | 5 | ||||
-rw-r--r-- | drivers/scsi/pm8001/pm80xx_tracepoints.h | 28 |
2 files changed, 33 insertions, 0 deletions
diff --git a/drivers/scsi/pm8001/pm8001_hwi.c b/drivers/scsi/pm8001/pm8001_hwi.c index f8e29d588f95..c814e5071712 100644 --- a/drivers/scsi/pm8001/pm8001_hwi.c +++ b/drivers/scsi/pm8001/pm8001_hwi.c @@ -42,6 +42,7 @@ #include "pm8001_hwi.h" #include "pm8001_chips.h" #include "pm8001_ctl.h" + #include "pm80xx_tracepoints.h" /** * read_main_config_table - read the configure table and save it. @@ -1324,6 +1325,10 @@ int pm8001_mpi_build_cmd(struct pm8001_hba_info *pm8001_ha, unsigned long flags; int q_index = circularQ - pm8001_ha->inbnd_q_tbl; int rv; + u32 htag = le32_to_cpu(*(__le32 *)payload); + + trace_pm80xx_mpi_build_cmd(pm8001_ha->id, opCode, htag, q_index, + circularQ->producer_idx, le32_to_cpu(circularQ->consumer_index)); if (WARN_ON(q_index >= pm8001_ha->max_q_num)) return -EINVAL; diff --git a/drivers/scsi/pm8001/pm80xx_tracepoints.h b/drivers/scsi/pm8001/pm80xx_tracepoints.h index 84fcfecfd624..5e669a8a9344 100644 --- a/drivers/scsi/pm8001/pm80xx_tracepoints.h +++ b/drivers/scsi/pm8001/pm80xx_tracepoints.h @@ -75,6 +75,34 @@ TRACE_EVENT(pm80xx_request_complete, __entry->running_req) ); +TRACE_EVENT(pm80xx_mpi_build_cmd, + TP_PROTO(u32 id, u32 opc, u32 htag, u32 qi, u32 pi, u32 ci), + + TP_ARGS(id, opc, htag, qi, pi, ci), + + TP_STRUCT__entry( + __field(u32, id) + __field(u32, opc) + __field(u32, htag) + __field(u32, qi) + __field(u32, pi) + __field(u32, ci) + ), + + TP_fast_assign( + __entry->id = id; + __entry->opc = opc; + __entry->htag = htag; + __entry->qi = qi; + __entry->pi = pi; + __entry->ci = ci; + ), + + TP_printk("ctlr_id = %u opc = %#x htag = %#x QI = %u PI = %u CI = %u", + __entry->id, __entry->opc, __entry->htag, __entry->qi, + __entry->pi, __entry->ci) +); + #endif /* _TRACE_PM80XX_H_ */ #undef TRACE_INCLUDE_PATH |