On 3/7/2023 11:47 PM, Bart Van Assche wrote:
On 3/6/23 21:53, Ziqi Chen wrote:
You are right, users may hate it if the trace events for legacy mode
and MCQ mode are different. But if I merge them into one event, it
will print much invalid information as we can not add if-else into
TP_printk().
(For example: in SDB legacy mode, you can see such invalid prints "
hqid = 0 , sqt= 0, cqh=0, cqt = 0")
Users may hate these invalid information.
Anyway, I have made new version that merge 2 mode into one event, but
are you sure we really need to use this way? if yes , I can push new
version here.
Or, could you give some suggestions if you have better way.
Below is a piece of new version code , you can preview.
TP_fast_assign(
__assign_str(dev_name, dev_name);
__entry->str_t = str_t;
__entry->tag = tag;
__entry->doorbell = doorbell;
__entry->hwq_id = hwq? hwq->id: 0;
__entry->sq_tail = hwq? hwq->sq_tail_slot: 0;
__entry->cq_head = hwq? hwq->cq_head_slot: 0;
__entry->cq_tail = hwq? hwq->cq_tail_slot: 0;
__entry->transfer_len = transfer_len;
__entry->lba = lba;
__entry->intr = intr;
__entry->opcode = opcode;
__entry->group_id = group_id;
),
TP_printk(
"%s: %s: tag: %u, DB: 0x%x, size: %d, IS: %u, LBA: %llu,
opcode: 0x%x (%s),"
"group_id: 0x%x, hqid: %d, sqt: %d, cqh: %d, cqt: %d",
show_ufs_cmd_trace_str(__entry->str_t), __get_str(dev_name),
__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,__entry->sq_tail, __entry->cq_head,
__entry->cq_tail
)
Hi Ziqi,
Please reply below the original e-mail instead of above. This is
expected on Linux kernel mailing lists.
Regarding your question: I propose to leave out the sq_tail, cq_head and
cq_tail information. That information may be useful for hardware
developers but is not useful for other users of the Linux kernel. So the
only piece of information that is left that is MCQ-specific is the
hardware queue index. I expect that users will be fine to see that
information in trace events.
How about reporting hardware queue index -1 for legacy mode instead of
0? That will allow users to tell the difference between legacy mode and
MCQ mode from the trace events.
Thanks,
Bart.
Hi Bart,
Thanks for you suggestion. But the member hwq->id is an Unsigned
integer. if you want to identify SDB mode and MCQ mode, using "0" is
enough, Or how about add string such as below?
ufshcd_command: MCQ: complete_rsp: 1d84000.ufshc: tag: 14, DB: 0x0,
size: 32768, IS: 0, LBA: 5979448,opcode: 0x2a (WRITE_10),group_id: 0x0,
hqid: 2
Ziqi