lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1456853934-24715-1-git-send-email-michele.digiorgio@arm.com>
Date:	Tue,  1 Mar 2016 17:38:54 +0000
From:	Michele Di Giorgio <michele.digiorgio@....com>
To:	linux-pm@...r.kernel.org
Cc:	Ingo Molnar <mingo@...hat.com>, Javi Merino <javi.merino@....com>,
	linux-kernel@...r.kernel.org,
	Punit Agrawal <punit.agrawal@....com>,
	Michele Di Giorgio <michele.digiorgio@....com>,
	Steven Rostedt <rostedt@...dmis.org>,
	Eduardo Valentin <edubezval@...il.com>
Subject: [PATCH] thermal: trace: migrating thermal traces to use TRACE_DEFINE_ENUM() macros

Userspace tools are not aware of how to convert the enums provided by
the tracepoints to their corresponding strings.

Adding TRACE_DEFINE_ENUM() macros allows to make the enums available
to userspace to let the tools know what those enum values represent.

In particular, for thermal zone trip types what we obtained before was
something like:

kworker/1:1-460   [001]   320.372732: thermal_zone_trip:    thermal_zone=soc
				id=0 trip=1 trip_type=1

Unfortunately, userspace tools do not know how to convert enum values to
strings and as a consequence they can only forward the enum value to the
output. By using TRACE_DEFINE_ENUM() macros for thermal traces we get the
following trace line:

kworker/1:1-460   [001]   320.372732: thermal_zone_trip:    thermal_zone=soc
				id=0 trip=1 trip_type=PASSIVE

Userspace tools are now able to better understand the meaning of the trip_type
and provide the user with more readable information.

CC: Steven Rostedt <rostedt@...dmis.org>
CC: Eduardo Valentin <edubezval@...il.com>
Signed-off-by: Michele Di Giorgio <michele.digiorgio@....com>
---
 include/trace/events/thermal.h | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/include/trace/events/thermal.h b/include/trace/events/thermal.h
index 5738bb3..2b4a8ff 100644
--- a/include/trace/events/thermal.h
+++ b/include/trace/events/thermal.h
@@ -8,6 +8,18 @@
 #include <linux/thermal.h>
 #include <linux/tracepoint.h>
 
+TRACE_DEFINE_ENUM(THERMAL_TRIP_CRITICAL);
+TRACE_DEFINE_ENUM(THERMAL_TRIP_HOT);
+TRACE_DEFINE_ENUM(THERMAL_TRIP_PASSIVE);
+TRACE_DEFINE_ENUM(THERMAL_TRIP_ACTIVE);
+
+#define show_tzt_type(type)					\
+	__print_symbolic(type,					\
+			 { THERMAL_TRIP_CRITICAL, "CRITICAL"},	\
+			 { THERMAL_TRIP_HOT,      "HOT"},	\
+			 { THERMAL_TRIP_PASSIVE,  "PASSIVE"},	\
+			 { THERMAL_TRIP_ACTIVE,   "ACTIVE"})
+
 TRACE_EVENT(thermal_temperature,
 
 	TP_PROTO(struct thermal_zone_device *tz),
@@ -73,9 +85,9 @@ TRACE_EVENT(thermal_zone_trip,
 		__entry->trip_type = trip_type;
 	),
 
-	TP_printk("thermal_zone=%s id=%d trip=%d trip_type=%d",
+	TP_printk("thermal_zone=%s id=%d trip=%d trip_type=%s",
 		__get_str(thermal_zone), __entry->id, __entry->trip,
-		__entry->trip_type)
+		show_tzt_type(__entry->trip_type))
 );
 
 TRACE_EVENT(thermal_power_cpu_get_power,
-- 
1.9.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ