author | binqi.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) |
commit | 2f23dd4c01048e1aae1d8690b293f24584ef1cab (patch) | |
tree | 354febaeb04d13985d56ef21117c06297906840e | |
parent | 04d333fa26ced6013bb3e91c2bb1c4e3068d8bfa (diff) | |
download | common-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>
-rw-r--r-- | MAINTAINERS | 4 | ||||
-rw-r--r-- | include/trace/events/meson_atrace.h | 67 |
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> |