]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
trace: events: add devfreq trace event file
authorLukasz Luba <l.luba@partner.samsung.com>
Mon, 18 Feb 2019 18:21:08 +0000 (19:21 +0100)
committerMyungJoo Ham <myungjoo.ham@samsung.com>
Tue, 16 Apr 2019 00:29:18 +0000 (09:29 +0900)
The patch adds a new file for with trace events for devfreq
framework. They are used for performance analysis of the framework.
It also contains updates in MAINTAINERS file adding new entry for
devfreq maintainers.

Signed-off-by: Lukasz Luba <l.luba@partner.samsung.com>
Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
MAINTAINERS
include/trace/events/devfreq.h [new file with mode: 0644]

index 3671fdea5010e351ff5cedabde6dee83a8db9d7c..27ed10966c8175a1ac677cdc08ee3f4166002ea4 100644 (file)
@@ -4552,6 +4552,7 @@ S:        Maintained
 F:     drivers/devfreq/
 F:     include/linux/devfreq.h
 F:     Documentation/devicetree/bindings/devfreq/
+F:     include/trace/events/devfreq.h
 
 DEVICE FREQUENCY EVENT (DEVFREQ-EVENT)
 M:     Chanwoo Choi <cw00.choi@samsung.com>
diff --git a/include/trace/events/devfreq.h b/include/trace/events/devfreq.h
new file mode 100644 (file)
index 0000000..cf5b877
--- /dev/null
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM devfreq
+
+#if !defined(_TRACE_DEVFREQ_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_DEVFREQ_H
+
+#include <linux/devfreq.h>
+#include <linux/tracepoint.h>
+
+TRACE_EVENT(devfreq_monitor,
+       TP_PROTO(struct devfreq *devfreq),
+
+       TP_ARGS(devfreq),
+
+       TP_STRUCT__entry(
+               __field(unsigned long, freq)
+               __field(unsigned long, busy_time)
+               __field(unsigned long, total_time)
+               __field(unsigned int, polling_ms)
+               __string(dev_name, dev_name(&devfreq->dev))
+       ),
+
+       TP_fast_assign(
+               __entry->freq = devfreq->previous_freq;
+               __entry->busy_time = devfreq->last_status.busy_time;
+               __entry->total_time = devfreq->last_status.total_time;
+               __entry->polling_ms = devfreq->profile->polling_ms;
+               __assign_str(dev_name, dev_name(&devfreq->dev));
+       ),
+
+       TP_printk("dev_name=%s freq=%lu polling_ms=%u load=%lu",
+               __get_str(dev_name), __entry->freq, __entry->polling_ms,
+               __entry->total_time == 0 ? 0 :
+                       (100 * __entry->busy_time) / __entry->total_time)
+);
+#endif /* _TRACE_DEVFREQ_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>