diff options
author | Javi Merino <javi.merino@arm.com> | 2016-03-24 10:50:03 +0000 |
---|---|---|
committer | Javi Merino <javi.merino@arm.com> | 2016-03-24 11:43:41 +0000 |
commit | 0341082b2baa11780548c12028067b9f4c5d6ee1 (patch) | |
tree | 17834c54d43cc6abd352f2542e03c238eace7486 /trappy/sched.py | |
parent | 46458d66cd5118b6d9cac7cb455f8dae1286b9b2 (diff) | |
download | trappy-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.py | 19 |
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""" |