scsi: ufs: core: Include the SCSI ID in UFS command tracing output
The logical unit information is missing from the UFS command tracing output. Although the device name is logged, e.g. 13200000.ufs, this name does not include logical unit information. Hence this patch that replaces the device name with the SCSI ID in the tracing output. An example of tracing output with this patch applied: kworker/8:0H-80 [008] ..... 89.106063: ufshcd_command: send_req: 0:0:0:4: tag: 10, DB: 0x7ffffbff, size: 524288, IS: 0, LBA: 1085538, opcode: 0x8a (WRITE_16), group_id: 0x0 dd-4225 [000] d.h.. 89.106219: ufshcd_command: complete_rsp: 0:0:0:4: tag: 11, DB: 0x7ffff7ff, size: 524288, IS: 0, LBA: 1081728, opcode: 0x8a (WRITE_16), group_id: 0x0 Cc: Christoph Hellwig <hch@infradead.org> Cc: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Bart Van Assche <bvanassche@acm.org> Link: https://lore.kernel.org/r/20230907183739.905938-1-bvanassche@acm.org Reviewed-by: Can Guo <quic_cang@quicinc.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
0bb80ecc33
commit
ccc3e13630
@ -446,8 +446,8 @@ static void ufshcd_add_command_trace(struct ufs_hba *hba, unsigned int tag,
|
||||
} else {
|
||||
doorbell = ufshcd_readl(hba, REG_UTP_TRANSFER_REQ_DOOR_BELL);
|
||||
}
|
||||
trace_ufshcd_command(dev_name(hba->dev), str_t, tag,
|
||||
doorbell, hwq_id, transfer_len, intr, lba, opcode, group_id);
|
||||
trace_ufshcd_command(cmd->device, str_t, tag, doorbell, hwq_id,
|
||||
transfer_len, intr, lba, opcode, group_id);
|
||||
}
|
||||
|
||||
static void ufshcd_print_clk_freqs(struct ufs_hba *hba)
|
||||
|
@ -267,15 +267,15 @@ DEFINE_EVENT(ufshcd_template, ufshcd_wl_runtime_resume,
|
||||
TP_ARGS(dev_name, err, usecs, dev_state, link_state));
|
||||
|
||||
TRACE_EVENT(ufshcd_command,
|
||||
TP_PROTO(const char *dev_name, enum ufs_trace_str_t str_t,
|
||||
TP_PROTO(struct scsi_device *sdev, enum ufs_trace_str_t str_t,
|
||||
unsigned int tag, u32 doorbell, u32 hwq_id, int transfer_len,
|
||||
u32 intr, u64 lba, u8 opcode, u8 group_id),
|
||||
|
||||
TP_ARGS(dev_name, str_t, tag, doorbell, hwq_id, transfer_len,
|
||||
intr, lba, opcode, group_id),
|
||||
TP_ARGS(sdev, str_t, tag, doorbell, hwq_id, transfer_len, intr, lba,
|
||||
opcode, group_id),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__string(dev_name, dev_name)
|
||||
__field(struct scsi_device *, sdev)
|
||||
__field(enum ufs_trace_str_t, str_t)
|
||||
__field(unsigned int, tag)
|
||||
__field(u32, doorbell)
|
||||
@ -288,7 +288,7 @@ TRACE_EVENT(ufshcd_command,
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__assign_str(dev_name, dev_name);
|
||||
__entry->sdev = sdev;
|
||||
__entry->str_t = str_t;
|
||||
__entry->tag = tag;
|
||||
__entry->doorbell = doorbell;
|
||||
@ -302,8 +302,9 @@ TRACE_EVENT(ufshcd_command,
|
||||
|
||||
TP_printk(
|
||||
"%s: %s: tag: %u, DB: 0x%x, size: %d, IS: %u, LBA: %llu, opcode: 0x%x (%s), group_id: 0x%x, hwq_id: %d",
|
||||
show_ufs_cmd_trace_str(__entry->str_t), __get_str(dev_name),
|
||||
__entry->tag, __entry->doorbell, __entry->transfer_len, __entry->intr,
|
||||
show_ufs_cmd_trace_str(__entry->str_t),
|
||||
dev_name(&__entry->sdev->sdev_dev), __entry->tag,
|
||||
__entry->doorbell, __entry->transfer_len, __entry->intr,
|
||||
__entry->lba, (u32)__entry->opcode, str_opcode(__entry->opcode),
|
||||
(u32)__entry->group_id, __entry->hwq_id
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user