Skip to content

Commit

Permalink
trace: events: add devfreq trace event file
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Lukasz Luba authored and MyungJoo Ham committed Apr 16, 2019
1 parent 9173c5c commit 1be0730
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 0 deletions.
1 change: 1 addition & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
40 changes: 40 additions & 0 deletions include/trace/events/devfreq.h
Original file line number Diff line number Diff line change
@@ -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>

0 comments on commit 1be0730

Please sign in to comment.