thermal: trace: Trace when a cooling device's state is updated
authorPunit Agrawal <punit.agrawal@arm.com>
Tue, 29 Jul 2014 10:50:49 +0000 (11:50 +0100)
committerEduardo Valentin <edubezval@gmail.com>
Tue, 29 Jul 2014 13:27:54 +0000 (09:27 -0400)
Introduce and use an event to trace when a cooling device's state is
updated. This is useful to follow the effect of governor decisions on
cooling devices.

Cc: Zhang Rui <rui.zhang@intel.com>
Cc: Eduardo Valentin <edubezval@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
drivers/thermal/thermal_core.c
include/trace/events/thermal.h

index 6b32391..c74c78d 100644 (file)
@@ -1291,6 +1291,7 @@ void thermal_cdev_update(struct thermal_cooling_device *cdev)
        mutex_unlock(&cdev->lock);
        cdev->ops->set_cur_state(cdev, target);
        cdev->updated = true;
+       trace_cdev_update(cdev, target);
        dev_dbg(&cdev->device, "set to state %lu\n", target);
 }
 EXPORT_SYMBOL(thermal_cdev_update);
index 8c5ca96..894a79e 100644 (file)
@@ -32,6 +32,25 @@ TRACE_EVENT(thermal_temperature,
                __entry->temp)
 );
 
+TRACE_EVENT(cdev_update,
+
+       TP_PROTO(struct thermal_cooling_device *cdev, unsigned long target),
+
+       TP_ARGS(cdev, target),
+
+       TP_STRUCT__entry(
+               __string(type, cdev->type)
+               __field(unsigned long, target)
+       ),
+
+       TP_fast_assign(
+               __assign_str(type, cdev->type);
+               __entry->target = target;
+       ),
+
+       TP_printk("type=%s target=%lu", __get_str(type), __entry->target)
+);
+
 #endif /* _TRACE_THERMAL_H */
 
 /* This part must be outside protection */