From e34cedacb950a2ca69c939a989ded7ea4b71f2e2 Mon Sep 17 00:00:00 2001 From: lintao Date: Mon, 25 Aug 2014 10:48:17 +0800 Subject: [PATCH] trace: mmc: add event class for cmd and resp --- include/trace/events/mmc.h | 91 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/include/trace/events/mmc.h b/include/trace/events/mmc.h index 82b368dbcefc..43eecc3a8d1e 100644 --- a/include/trace/events/mmc.h +++ b/include/trace/events/mmc.h @@ -85,6 +85,97 @@ DEFINE_EVENT_CONDITION(mmc_blk_rw_class, mmc_blk_rw_end, TP_CONDITION(((cmd == MMC_READ_MULTIPLE_BLOCK) || (cmd == MMC_WRITE_MULTIPLE_BLOCK)) && data)); + +/* + * Logging of start of req(sbc) and req done of mmc operation, + * including cmd, args, size, resp, etc. + */ +DECLARE_EVENT_CLASS(start_req, + TP_PROTO(const char * host, unsigned int cmd, + unsigned int arg, unsigned int flags, + unsigned int blksz, unsigned int blks), + TP_ARGS(host, cmd, arg, flags, blksz, blks), + + TP_STRUCT__entry( + __string(host, host) + __field(unsigned int, cmd ) + __field(unsigned int, arg ) + __field(unsigned int, flags ) + __field(unsigned int, blksz ) + __field(unsigned int, blks ) + ), + + TP_fast_assign( + __assign_str(host, host); + __entry->cmd = cmd; + __entry->arg = arg; + __entry->flags = flags; + __entry->blksz = blksz; + __entry->blks = blks; + ), + + TP_printk("host=%s CMD%u arg=%08x flags=%08x blksz=%05x blks=%03x", + __get_str(host), __entry->cmd, + __entry->arg, __entry->flags, + __entry->blksz, __entry->blks ) +); + +DEFINE_EVENT(start_req, mmc_start_req_cmd, + TP_PROTO(const char *host, unsigned int cmd, + unsigned int arg, unsigned int flags, + unsigned int blksz, unsigned int blks), + TP_ARGS(host, cmd, arg, flags, blksz, blks) +); + +DEFINE_EVENT(start_req, mmc_start_req_sbc, + TP_PROTO(const char *host, unsigned int cmd, + unsigned int arg, unsigned int flags, + unsigned int blksz, unsigned int blks), + TP_ARGS(host, cmd, arg, flags, blksz, blks) +); + + +DECLARE_EVENT_CLASS(req_done, + TP_PROTO(const char *host, unsigned int cmd, + int err, unsigned int resp1, + unsigned int resp2, unsigned int resp3, + unsigned int resp4), + TP_ARGS(host, cmd, err, resp1, resp2, resp3, resp4), + + TP_STRUCT__entry( + __string(host, host) + __field(unsigned int, cmd ) + __field( int, err ) + __field(unsigned int, resp1 ) + __field(unsigned int, resp2 ) + __field(unsigned int, resp3 ) + __field(unsigned int, resp4 ) + ), + + TP_fast_assign( + __assign_str(host, host); + __entry->cmd = cmd; + __entry->err = err; + __entry->resp1 = resp1; + __entry->resp2 = resp2; + __entry->resp3 = resp3; + __entry->resp4 = resp4; + ), + + TP_printk("host=%s CMD%u err=%08x resp1=%08x resp2=%08x resp3=%08x resp4=%08x", + __get_str(host), __entry->cmd, + __entry->err, __entry->resp1, + __entry->resp2, __entry->resp3, + __entry->resp4 ) +); + +DEFINE_EVENT(req_done, mmc_req_done, + TP_PROTO(const char *host, unsigned int cmd, + int err, unsigned int resp1, + unsigned int resp2, unsigned int resp3, + unsigned int resp4), + TP_ARGS(host, cmd, err, resp1, resp2, resp3, resp4) +); #endif /* _TRACE_MMC_H */ /* This part must be outside protection */ -- 2.34.1