From 1bb14cd806f9b00f9f3bfa46e371a250e8261cd3 Mon Sep 17 00:00:00 2001 From: Adrian Salido Date: Mon, 8 Jul 2019 09:34:20 -0700 Subject: [PATCH] drm/msm: enable counter trace Trace counter is not properly showing up on trace as is. Replace it with proper format by refactoring existing trace to be more generic. Bug: 119295905 Change-Id: I50abb593cd67c10ceed115380ac0e9d2177f0963 Signed-off-by: Adrian Salido (cherry picked from commit 89ac1949eaa1524e4e2bbd2ad8c8b6513ae594dd) Signed-off-by: Christopher Braga Signed-off-by: Samantha Tran --- msm/sde/sde_trace.h | 39 +++++++++++++-------------------------- msm/sde_rsc.c | 2 ++ 2 files changed, 15 insertions(+), 26 deletions(-) diff --git a/msm/sde/sde_trace.h b/msm/sde/sde_trace.h index e6ab33cc82..ca5e023d37 100644 --- a/msm/sde/sde_trace.h +++ b/msm/sde/sde_trace.h @@ -135,37 +135,22 @@ TRACE_EVENT(sde_encoder_underrun, ); TRACE_EVENT(tracing_mark_write, - TP_PROTO(int pid, const char *name, bool trace_begin), - TP_ARGS(pid, name, trace_begin), + TP_PROTO(char trace_type, int pid, const char *name, int value), + TP_ARGS(trace_type, pid, name, value), TP_STRUCT__entry( + __field(char, trace_type) __field(int, pid) __string(trace_name, name) - __field(bool, trace_begin) - ), - TP_fast_assign( - __entry->pid = pid; - __assign_str(trace_name, name); - __entry->trace_begin = trace_begin; - ), - TP_printk("%s|%d|%s", __entry->trace_begin ? "B" : "E", - __entry->pid, __get_str(trace_name)) -) - -TRACE_EVENT(sde_trace_counter, - TP_PROTO(int pid, char *name, int value), - TP_ARGS(pid, name, value), - TP_STRUCT__entry( - __field(int, pid) - __string(counter_name, name) __field(int, value) ), TP_fast_assign( - __entry->pid = current->tgid; - __assign_str(counter_name, name); + __entry->trace_type = trace_type; + __entry->pid = pid; + __assign_str(trace_name, name); __entry->value = value; ), - TP_printk("%d|%s|%d", __entry->pid, - __get_str(counter_name), __entry->value) + TP_printk("%c|%d|%s|%d", __entry->trace_type, + __entry->pid, __get_str(trace_name), __entry->value) ) #define SDE_TRACE_EVTLOG_SIZE 15 @@ -415,12 +400,14 @@ TRACE_EVENT(sde_perf_uidle_status, ) ); -#define SDE_ATRACE_END(name) trace_tracing_mark_write(current->tgid, name, 0) -#define SDE_ATRACE_BEGIN(name) trace_tracing_mark_write(current->tgid, name, 1) +#define SDE_ATRACE_END(name) \ + trace_tracing_mark_write('E', current->tgid, name, 0) +#define SDE_ATRACE_BEGIN(name) \ + trace_tracing_mark_write('B', current->tgid, name, 0) #define SDE_ATRACE_FUNC() SDE_ATRACE_BEGIN(__func__) #define SDE_ATRACE_INT(name, value) \ - trace_sde_trace_counter(current->tgid, name, value) + trace_tracing_mark_write('C', current->tgid, name, value) #endif /* _SDE_TRACE_H_ */ diff --git a/msm/sde_rsc.c b/msm/sde_rsc.c index 6d5ba16a7d..0a70621916 100644 --- a/msm/sde_rsc.c +++ b/msm/sde_rsc.c @@ -22,6 +22,7 @@ #include #include "sde_rsc_priv.h" #include "sde_dbg.h" +#include "sde_trace.h" #define SDE_RSC_DRV_DBG_NAME "sde_rsc_drv" #define SDE_RSC_WRAPPER_DBG_NAME "sde_rsc_wrapper" @@ -871,6 +872,7 @@ int sde_rsc_client_state_update(struct sde_rsc_client *caller_client, } pr_debug("state switch successfully complete: %d\n", state); + SDE_ATRACE_INT("rsc_state", state); rsc->current_state = state; SDE_EVT32(caller_client->id, caller_client->current_state, state, rsc->current_state, SDE_EVTLOG_FUNC_EXIT);