90 lines
1.8 KiB
C
90 lines
1.8 KiB
C
|
/* SPDX-License-Identifier: GPL-2.0 */
|
||
|
/*
|
||
|
* Copyright (c) 2019 MediaTek Inc.
|
||
|
*/
|
||
|
|
||
|
#undef TRACE_SYSTEM
|
||
|
#define TRACE_SYSTEM fpsgo
|
||
|
|
||
|
#if !defined(_TRACE_FPSGO_H) || defined(TRACE_HEADER_MULTI_READ)
|
||
|
#define _TRACE_FPSGO_H
|
||
|
|
||
|
#include <linux/tracepoint.h>
|
||
|
#include <linux/ktime.h>
|
||
|
|
||
|
#ifdef CREATE_TRACE_POINTS
|
||
|
static inline unsigned long long calc_dur(unsigned long long *start,
|
||
|
unsigned long long *end)
|
||
|
{
|
||
|
if (*end < *start)
|
||
|
return 0ULL;
|
||
|
return (*end - *start);
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
TRACE_EVENT(xgf_intvl,
|
||
|
|
||
|
TP_PROTO(char *type, void *obj, unsigned long long *start,
|
||
|
unsigned long long *end),
|
||
|
|
||
|
TP_ARGS(type, obj, start, end),
|
||
|
|
||
|
TP_STRUCT__entry(
|
||
|
__string(string, type)
|
||
|
__field(void*, obj)
|
||
|
__field(unsigned long long, start)
|
||
|
__field(unsigned long long, end)
|
||
|
__field(unsigned long long, dur)
|
||
|
),
|
||
|
|
||
|
TP_fast_assign(
|
||
|
__assign_str(string, type);
|
||
|
__entry->obj = obj;
|
||
|
__entry->start = *start;
|
||
|
__entry->end = *end;
|
||
|
__entry->dur = calc_dur(start, end);
|
||
|
),
|
||
|
|
||
|
TP_printk("%s %p %llu ==> %llu intvl=%lld", __get_str(string),
|
||
|
__entry->obj, __entry->start, __entry->end,
|
||
|
__entry->dur)
|
||
|
);
|
||
|
|
||
|
DECLARE_EVENT_CLASS(fpsgo_log_template,
|
||
|
|
||
|
TP_PROTO(char *log),
|
||
|
|
||
|
TP_ARGS(log),
|
||
|
|
||
|
TP_STRUCT__entry(
|
||
|
__string(msg, log)
|
||
|
),
|
||
|
|
||
|
TP_fast_assign(
|
||
|
__assign_str(msg, log);
|
||
|
),
|
||
|
|
||
|
TP_printk("%s", __get_str(msg))
|
||
|
);
|
||
|
|
||
|
DEFINE_EVENT(fpsgo_log_template, xgf_log,
|
||
|
TP_PROTO(char *log),
|
||
|
TP_ARGS(log));
|
||
|
|
||
|
DEFINE_EVENT(fpsgo_log_template, minitop_log,
|
||
|
TP_PROTO(char *log),
|
||
|
TP_ARGS(log));
|
||
|
|
||
|
DEFINE_EVENT(fpsgo_log_template, fpsgo_main_log,
|
||
|
TP_PROTO(char *log),
|
||
|
TP_ARGS(log));
|
||
|
|
||
|
DEFINE_EVENT(fpsgo_log_template, eara_thrm_log,
|
||
|
TP_PROTO(char *log),
|
||
|
TP_ARGS(log));
|
||
|
|
||
|
#endif /* _TRACE_FPSGO_H */
|
||
|
|
||
|
/* This part must be outside protection */
|
||
|
#include <trace/define_trace.h>
|