Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1bb14cd8 authored by Adrian Salido's avatar Adrian Salido Committed by Lakshmi Narayana Kalavala
Browse files

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: default avatarAdrian Salido <salidoa@google.com>
(cherry picked from commit 89ac1949eaa1524e4e2bbd2ad8c8b6513ae594dd)
Signed-off-by: default avatarChristopher Braga <cbraga@codeaurora.org>
Signed-off-by: default avatarSamantha Tran <samtran@codeaurora.org>
parent 216abbf9
Loading
Loading
Loading
Loading
+12 −25
Original line number Original line Diff line number Diff line
@@ -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)
			__field(int, value)
	),
	),
	TP_fast_assign(
	TP_fast_assign(
			__entry->trace_type = trace_type;
			__entry->pid = pid;
			__entry->pid = pid;
			__assign_str(trace_name, name);
			__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->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_ */


+2 −0
Original line number Original line Diff line number Diff line
@@ -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);