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 <salidoa@google.com>
(cherry picked from commit 89ac1949eaa1524e4e2bbd2ad8c8b6513ae594dd)
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
This commit is contained in:
Adrian Salido
2019-07-08 09:34:20 -07:00
committed by Lakshmi Narayana Kalavala
parent 216abbf9fa
commit 1bb14cd806
2 changed files with 15 additions and 26 deletions

View File

@@ -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_ */

View File

@@ -22,6 +22,7 @@
#include <drm/drm_irq.h>
#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);