浏览代码

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 <[email protected]>
(cherry picked from commit 89ac1949eaa1524e4e2bbd2ad8c8b6513ae594dd)
Signed-off-by: Christopher Braga <[email protected]>
Signed-off-by: Samantha Tran <[email protected]>
Adrian Salido 6 年之前
父节点
当前提交
1bb14cd806
共有 2 个文件被更改,包括 14 次插入25 次删除
  1. 12 25
      msm/sde/sde_trace.h
  2. 2 0
      msm/sde_rsc.c

+ 12 - 25
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)
+			__field(int, value)
 	),
 	TP_fast_assign(
+			__entry->trace_type = trace_type;
 			__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->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_ */
 

+ 2 - 0
msm/sde_rsc.c

@@ -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);