summaryrefslogtreecommitdiff
authorbinqi.zhang <binqi.zhang@amlogic.com>2018-04-13 06:08:14 (GMT)
committer yang.xu <yang.xu@amlogic.com>2018-04-20 02:37:30 (GMT)
commit2f23dd4c01048e1aae1d8690b293f24584ef1cab (patch)
tree354febaeb04d13985d56ef21117c06297906840e
parent04d333fa26ced6013bb3e91c2bb1c4e3068d8bfa (diff)
downloadcommon-2f23dd4c01048e1aae1d8690b293f24584ef1cab.zip
common-2f23dd4c01048e1aae1d8690b293f24584ef1cab.tar.gz
common-2f23dd4c01048e1aae1d8690b293f24584ef1cab.tar.bz2
trace: add meson trace func [2/2]
PD#164734: meson: Aid to kernel debug echo 1 > /sys/kernel/debug/tracing/events/meson_atrace/tracing_mark_write/enable Change-Id: I11d56296ae8f5bd7427b292b0c98c6b4541b6faa Signed-off-by: binqi.zhang <binqi.zhang@amlogic.com>
Diffstat
-rw-r--r--MAINTAINERS4
-rw-r--r--include/trace/events/meson_atrace.h67
2 files changed, 71 insertions, 0 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 3590bac..f7bf056 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -13674,6 +13674,10 @@ AMLOGIC GPU DEVICETREE
M: Jiyu Yang <jiyu.yang@amlogic.com>
F: arch/arm64/boot/dts/amlogic/mesongxtvbb-gpu-t83x.dtsi
+AMLOGIC GPU SYSTRACE
+M: Binqi Zhang <binqi.zhang@amlogic.com>
+F: include/trace/events/meson_atrace.h
+
AMLOGIC VRTC DRIVER
M: Yun Cai <yun.cai@amlogic.com>
F: drivers/amlogic/vrtc/
diff --git a/include/trace/events/meson_atrace.h b/include/trace/events/meson_atrace.h
new file mode 100644
index 0000000..8400969
--- a/dev/null
+++ b/include/trace/events/meson_atrace.h
@@ -0,0 +1,67 @@
+/*
+ * meson_atrace.h
+ */
+
+/*
+ * This file enables ftrace logging in a way that
+ * atrace/systrace would understand
+ * without any custom javascript change in chromium-trace
+ */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM meson_atrace
+
+#if !defined(_TRACE_MESON_BASE_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_MESON_BASE_H
+
+#include <linux/tracepoint.h>
+
+
+#define KERNEL_ATRACE_COUNTER 0
+#define KERNEL_ATRACE_BEGIN 1
+#define KERNEL_ATRACE_END 2
+
+#define print_flags_header(flags) __print_flags(flags, "", \
+ { (1UL << KERNEL_ATRACE_COUNTER), "C" }, \
+ { (1UL << KERNEL_ATRACE_BEGIN), "B" }, \
+ { (1UL << KERNEL_ATRACE_END), "E" })
+
+
+#define print_flags_delim(flags) __print_flags(flags, "", \
+ { (1UL << KERNEL_ATRACE_COUNTER), "|1|" }, \
+ { (1UL << KERNEL_ATRACE_BEGIN), "|1|" }, \
+ { (1UL << KERNEL_ATRACE_END), "" })
+
+TRACE_EVENT(tracing_mark_write,
+
+ TP_PROTO(const char *name, unsigned int flags, unsigned int value),
+
+ TP_ARGS(name, flags, value),
+
+ TP_STRUCT__entry(
+ __string(name, name)
+ __field(unsigned int, flags)
+ __field(unsigned int, value)
+ ),
+
+ TP_fast_assign(
+ __assign_str(name, name);
+ __entry->flags = flags;
+ __entry->value = value;
+ ),
+
+ TP_printk("%s%s%s|%u", print_flags_header(__entry->flags),
+ print_flags_delim(__entry->flags),
+ __get_str(name), __entry->value)
+);
+
+#define ATRACE_COUNTER(name, value) \
+ trace_tracing_mark_write(name, (1 << KERNEL_ATRACE_COUNTER), value)
+#define ATRACE_BEGIN(name) \
+ trace_tracing_mark_write(name, (1 << KERNEL_ATRACE_BEGIN), 0)
+#define ATRACE_END(name) \
+ trace_tracing_mark_write("", (1 << KERNEL_ATRACE_END), 1)
+
+#endif /* _TRACE_MESON_BASE_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>