mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-30 08:02:30 +00:00
40d30cf680
After the recently added new scmi_msg_dump traces, the general format of the various other SCMI traces are not consistent. As an example the full traces of a simple PERF_LEVEL_SET: | cpufreq-set-276 scmi_xfer_begin: transfer_id=145 msg_id=7 protocol_id=19 seq=145 poll=0 | cpufreq-set-276 scmi_msg_dump: pt=13 t=CMND msg_id=07 seq=0091 s=0 pyld=000000008066ab13 | cpufreq-set-276 scmi_xfer_response_wait: transfer_id=145 msg_id=7 protocol_id=19 seq=145 tmo_ms=5000 poll=0 | <idle>-0 scmi_msg_dump: pt=13 t=RESP msg_id=07 seq=0091 s=0 pyld= | <idle>-0 scmi_rx_done: transfer_id=145 msg_id=7 protocol_id=19 seq=145 msg_type=0 | cpufreq-set-276 scmi_xfer_end: transfer_id=145 msg_id=7 protocol_id=19 seq=145 status=0 ... where the same information is being reported using different names (protocol_id= vs pt=) and even worst different bases, which is hard to read and to parse. So let us unify them, using the same naming and ordering of the fields (wherever possible) and moving all the protocol related fields to base-16 while keeping in base-10 timeouts, res_id and values, so that the new traces would be like: | cpufreq-set-274 scmi_xfer_begin: pt=13 msg_id=07 seq=0092 transfer_id=92 poll=0 | cpufreq-set-274 scmi_msg_dump: pt=13 t=CMND msg_id=07 seq=0092 s=0 pyld=000000008066ab13 | cpufreq-set-274 scmi_xfer_response_wait: pt=13 msg_id=07 seq=0092 transfer_id=92 tmo_ms=5000 poll=0 | cat-256 scmi_msg_dump: pt=13 t=RESP msg_id=07 seq=0092 s=0 pyld= | cat-256 scmi_rx_done: pt=13 msg_id=07 seq=0092 transfer_id=92 msg_type=0 | cpufreq-set-274 scmi_xfer_end: pt=13 msg_id=07 seq=0092 transfer_id=92 s=0 Link: https://lore.kernel.org/r/20220818132309.584042-2-cristian.marussi@arm.com Signed-off-by: Cristian Marussi <cristian.marussi@arm.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
174 lines
4.4 KiB
C
174 lines
4.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#undef TRACE_SYSTEM
|
|
#define TRACE_SYSTEM scmi
|
|
|
|
#if !defined(_TRACE_SCMI_H) || defined(TRACE_HEADER_MULTI_READ)
|
|
#define _TRACE_SCMI_H
|
|
|
|
#include <linux/tracepoint.h>
|
|
|
|
TRACE_EVENT(scmi_fc_call,
|
|
TP_PROTO(u8 protocol_id, u8 msg_id, u32 res_id, u32 val1, u32 val2),
|
|
TP_ARGS(protocol_id, msg_id, res_id, val1, val2),
|
|
|
|
TP_STRUCT__entry(
|
|
__field(u8, protocol_id)
|
|
__field(u8, msg_id)
|
|
__field(u32, res_id)
|
|
__field(u32, val1)
|
|
__field(u32, val2)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->protocol_id = protocol_id;
|
|
__entry->msg_id = msg_id;
|
|
__entry->res_id = res_id;
|
|
__entry->val1 = val1;
|
|
__entry->val2 = val2;
|
|
),
|
|
|
|
TP_printk("pt=%02X msg_id=%02X res_id:%u vals=%u:%u",
|
|
__entry->protocol_id, __entry->msg_id,
|
|
__entry->res_id, __entry->val1, __entry->val2)
|
|
);
|
|
|
|
TRACE_EVENT(scmi_xfer_begin,
|
|
TP_PROTO(int transfer_id, u8 msg_id, u8 protocol_id, u16 seq,
|
|
bool poll),
|
|
TP_ARGS(transfer_id, msg_id, protocol_id, seq, poll),
|
|
|
|
TP_STRUCT__entry(
|
|
__field(int, transfer_id)
|
|
__field(u8, msg_id)
|
|
__field(u8, protocol_id)
|
|
__field(u16, seq)
|
|
__field(bool, poll)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->transfer_id = transfer_id;
|
|
__entry->msg_id = msg_id;
|
|
__entry->protocol_id = protocol_id;
|
|
__entry->seq = seq;
|
|
__entry->poll = poll;
|
|
),
|
|
|
|
TP_printk("pt=%02X msg_id=%02X seq=%04X transfer_id=%X poll=%u",
|
|
__entry->protocol_id, __entry->msg_id, __entry->seq,
|
|
__entry->transfer_id, __entry->poll)
|
|
);
|
|
|
|
TRACE_EVENT(scmi_xfer_response_wait,
|
|
TP_PROTO(int transfer_id, u8 msg_id, u8 protocol_id, u16 seq,
|
|
u32 timeout, bool poll),
|
|
TP_ARGS(transfer_id, msg_id, protocol_id, seq, timeout, poll),
|
|
|
|
TP_STRUCT__entry(
|
|
__field(int, transfer_id)
|
|
__field(u8, msg_id)
|
|
__field(u8, protocol_id)
|
|
__field(u16, seq)
|
|
__field(u32, timeout)
|
|
__field(bool, poll)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->transfer_id = transfer_id;
|
|
__entry->msg_id = msg_id;
|
|
__entry->protocol_id = protocol_id;
|
|
__entry->seq = seq;
|
|
__entry->timeout = timeout;
|
|
__entry->poll = poll;
|
|
),
|
|
|
|
TP_printk("pt=%02X msg_id=%02X seq=%04X transfer_id=%X tmo_ms=%u poll=%u",
|
|
__entry->protocol_id, __entry->msg_id, __entry->seq,
|
|
__entry->transfer_id, __entry->timeout, __entry->poll)
|
|
);
|
|
|
|
TRACE_EVENT(scmi_xfer_end,
|
|
TP_PROTO(int transfer_id, u8 msg_id, u8 protocol_id, u16 seq,
|
|
int status),
|
|
TP_ARGS(transfer_id, msg_id, protocol_id, seq, status),
|
|
|
|
TP_STRUCT__entry(
|
|
__field(int, transfer_id)
|
|
__field(u8, msg_id)
|
|
__field(u8, protocol_id)
|
|
__field(u16, seq)
|
|
__field(int, status)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->transfer_id = transfer_id;
|
|
__entry->msg_id = msg_id;
|
|
__entry->protocol_id = protocol_id;
|
|
__entry->seq = seq;
|
|
__entry->status = status;
|
|
),
|
|
|
|
TP_printk("pt=%02X msg_id=%02X seq=%04X transfer_id=%X s=%d",
|
|
__entry->protocol_id, __entry->msg_id, __entry->seq,
|
|
__entry->transfer_id, __entry->status)
|
|
);
|
|
|
|
TRACE_EVENT(scmi_rx_done,
|
|
TP_PROTO(int transfer_id, u8 msg_id, u8 protocol_id, u16 seq,
|
|
u8 msg_type),
|
|
TP_ARGS(transfer_id, msg_id, protocol_id, seq, msg_type),
|
|
|
|
TP_STRUCT__entry(
|
|
__field(int, transfer_id)
|
|
__field(u8, msg_id)
|
|
__field(u8, protocol_id)
|
|
__field(u16, seq)
|
|
__field(u8, msg_type)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->transfer_id = transfer_id;
|
|
__entry->msg_id = msg_id;
|
|
__entry->protocol_id = protocol_id;
|
|
__entry->seq = seq;
|
|
__entry->msg_type = msg_type;
|
|
),
|
|
|
|
TP_printk("pt=%02X msg_id=%02X seq=%04X transfer_id=%X msg_type=%u",
|
|
__entry->protocol_id, __entry->msg_id, __entry->seq,
|
|
__entry->transfer_id, __entry->msg_type)
|
|
);
|
|
|
|
TRACE_EVENT(scmi_msg_dump,
|
|
TP_PROTO(u8 protocol_id, u8 msg_id, unsigned char *tag, u16 seq,
|
|
int status, void *buf, size_t len),
|
|
TP_ARGS(protocol_id, msg_id, tag, seq, status, buf, len),
|
|
|
|
TP_STRUCT__entry(
|
|
__field(u8, protocol_id)
|
|
__field(u8, msg_id)
|
|
__array(char, tag, 5)
|
|
__field(u16, seq)
|
|
__field(int, status)
|
|
__field(size_t, len)
|
|
__dynamic_array(unsigned char, cmd, len)
|
|
),
|
|
|
|
TP_fast_assign(
|
|
__entry->protocol_id = protocol_id;
|
|
__entry->msg_id = msg_id;
|
|
strscpy(__entry->tag, tag, 5);
|
|
__entry->seq = seq;
|
|
__entry->status = status;
|
|
__entry->len = len;
|
|
memcpy(__get_dynamic_array(cmd), buf, __entry->len);
|
|
),
|
|
|
|
TP_printk("pt=%02X t=%s msg_id=%02X seq=%04X s=%d pyld=%s",
|
|
__entry->protocol_id, __entry->tag, __entry->msg_id,
|
|
__entry->seq, __entry->status,
|
|
__print_hex_str(__get_dynamic_array(cmd), __entry->len))
|
|
);
|
|
#endif /* _TRACE_SCMI_H */
|
|
|
|
/* This part must be outside protection */
|
|
#include <trace/define_trace.h>
|