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:

committed by
Lakshmi Narayana Kalavala

parent
216abbf9fa
commit
1bb14cd806
@@ -135,37 +135,22 @@ TRACE_EVENT(sde_encoder_underrun,
|
|||||||
);
|
);
|
||||||
|
|
||||||
TRACE_EVENT(tracing_mark_write,
|
TRACE_EVENT(tracing_mark_write,
|
||||||
TP_PROTO(int pid, const char *name, bool trace_begin),
|
TP_PROTO(char trace_type, int pid, const char *name, int value),
|
||||||
TP_ARGS(pid, name, trace_begin),
|
TP_ARGS(trace_type, pid, name, value),
|
||||||
TP_STRUCT__entry(
|
TP_STRUCT__entry(
|
||||||
|
__field(char, trace_type)
|
||||||
__field(int, pid)
|
__field(int, pid)
|
||||||
__string(trace_name, name)
|
__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)
|
__field(int, value)
|
||||||
),
|
),
|
||||||
TP_fast_assign(
|
TP_fast_assign(
|
||||||
__entry->pid = current->tgid;
|
__entry->trace_type = trace_type;
|
||||||
__assign_str(counter_name, name);
|
__entry->pid = pid;
|
||||||
|
__assign_str(trace_name, name);
|
||||||
__entry->value = value;
|
__entry->value = value;
|
||||||
),
|
),
|
||||||
TP_printk("%d|%s|%d", __entry->pid,
|
TP_printk("%c|%d|%s|%d", __entry->trace_type,
|
||||||
__get_str(counter_name), __entry->value)
|
__entry->pid, __get_str(trace_name), __entry->value)
|
||||||
)
|
)
|
||||||
|
|
||||||
#define SDE_TRACE_EVTLOG_SIZE 15
|
#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_END(name) \
|
||||||
#define SDE_ATRACE_BEGIN(name) trace_tracing_mark_write(current->tgid, name, 1)
|
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_FUNC() SDE_ATRACE_BEGIN(__func__)
|
||||||
|
|
||||||
#define SDE_ATRACE_INT(name, value) \
|
#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_ */
|
#endif /* _SDE_TRACE_H_ */
|
||||||
|
|
||||||
|
@@ -22,6 +22,7 @@
|
|||||||
#include <drm/drm_irq.h>
|
#include <drm/drm_irq.h>
|
||||||
#include "sde_rsc_priv.h"
|
#include "sde_rsc_priv.h"
|
||||||
#include "sde_dbg.h"
|
#include "sde_dbg.h"
|
||||||
|
#include "sde_trace.h"
|
||||||
|
|
||||||
#define SDE_RSC_DRV_DBG_NAME "sde_rsc_drv"
|
#define SDE_RSC_DRV_DBG_NAME "sde_rsc_drv"
|
||||||
#define SDE_RSC_WRAPPER_DBG_NAME "sde_rsc_wrapper"
|
#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);
|
pr_debug("state switch successfully complete: %d\n", state);
|
||||||
|
SDE_ATRACE_INT("rsc_state", state);
|
||||||
rsc->current_state = state;
|
rsc->current_state = state;
|
||||||
SDE_EVT32(caller_client->id, caller_client->current_state,
|
SDE_EVT32(caller_client->id, caller_client->current_state,
|
||||||
state, rsc->current_state, SDE_EVTLOG_FUNC_EXIT);
|
state, rsc->current_state, SDE_EVTLOG_FUNC_EXIT);
|
||||||
|
Reference in New Issue
Block a user