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
)