aboutsummaryrefslogtreecommitdiff
path: root/trappy/sched.py
diff options
context:
space:
mode:
authorJavi Merino <javi.merino@arm.com>2016-03-24 10:50:03 +0000
committerJavi Merino <javi.merino@arm.com>2016-03-24 11:43:41 +0000
commit0341082b2baa11780548c12028067b9f4c5d6ee1 (patch)
tree17834c54d43cc6abd352f2542e03c238eace7486 /trappy/sched.py
parent46458d66cd5118b6d9cac7cb455f8dae1286b9b2 (diff)
downloadtrappy-0341082b2baa11780548c12028067b9f4c5d6ee1.tar.gz
sched: cope with SysTrace's sched_switch event
For trace-cmd traces, we use the raw trace to parse sched_switch. That's not possible for SysTrace traces, we don't have access to the raw data. Luckily SysTrace doesn't mangle the data as much as trace-cmd's plugin, so a simple string replace is enough to get rid of a stray "==>".
Diffstat (limited to 'trappy/sched.py')
-rw-r--r--trappy/sched.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/trappy/sched.py b/trappy/sched.py
index ca00268..693be99 100644
--- a/trappy/sched.py
+++ b/trappy/sched.py
@@ -98,11 +98,24 @@ SchedWakeupNew = register_dynamic_ftrace("SchedWakeupNew", "sched_wakeup_new:",
"sched", parse_raw=True)
"""Register SchedWakeupNew Event"""
-SchedSwitch = register_dynamic_ftrace("SchedSwitch", "sched_switch", "sched",
- parse_raw=True)
-"""Register SchedSwitch Event"""
# pylint: enable=invalid-name
+class SchedSwitch(Base):
+ """Parse sched_switch"""
+
+ unique_word = "sched_switch:"
+
+ def __init__(self):
+ super(SchedSwitch, self).__init__(parse_raw=True)
+
+ def create_dataframe(self):
+ self.data_array = [line.replace(" ==> ", " ", 1)
+ for line in self.data_array]
+
+ super(SchedSwitch, self).create_dataframe()
+
+register_ftrace_parser(SchedSwitch, "sched")
+
class SchedCpuFrequency(Base):
"""Corresponds to Linux kernel trace event power/cpu_frequency"""