diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-02-21 18:32:24 -0500 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-02-21 18:32:24 -0500 |
commit | 6e2b99a0870e467e35c8b4b95aeb1e665dded413 (patch) | |
tree | 1e4b4d000c6b53b93a35b5446dc774d4799c987c /run/tracer.py | |
parent | 9bcbb4048cd82ea11ed469731eae95d808b99449 (diff) |
Many bugfixes motivated by some end-to-end testing.
Diffstat (limited to 'run/tracer.py')
-rw-r--r-- | run/tracer.py | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/run/tracer.py b/run/tracer.py index 5d00e86..723bcad 100644 --- a/run/tracer.py +++ b/run/tracer.py | |||
@@ -1,10 +1,9 @@ | |||
1 | import litmus_util | 1 | from . import litmus_util |
2 | import os | 2 | import os |
3 | import config.config as conf | 3 | import config.config as conf |
4 | 4 | ||
5 | from operator import methodcaller | 5 | from operator import methodcaller |
6 | from executable.ftcat import FTcat,Executable | 6 | from run.executable.ftcat import FTcat,Executable |
7 | |||
8 | 7 | ||
9 | class Tracer(object): | 8 | class Tracer(object): |
10 | def __init__(self, name, output_dir): | 9 | def __init__(self, name, output_dir): |
@@ -19,7 +18,6 @@ class Tracer(object): | |||
19 | map(methodcaller('terminate'), self.bins) | 18 | map(methodcaller('terminate'), self.bins) |
20 | map(methodcaller('wait'), self.bins) | 19 | map(methodcaller('wait'), self.bins) |
21 | 20 | ||
22 | |||
23 | class LinuxTracer(Tracer): | 21 | class LinuxTracer(Tracer): |
24 | EVENT_ROOT = "/sys/kernel/debug/tracing" | 22 | EVENT_ROOT = "/sys/kernel/debug/tracing" |
25 | LITMUS_EVENTS = "%s/events/litmus" % EVENT_ROOT | 23 | LITMUS_EVENTS = "%s/events/litmus" % EVENT_ROOT |
@@ -45,7 +43,6 @@ class LinuxTracer(Tracer): | |||
45 | map(methodcaller('interrupt'), self.bins) | 43 | map(methodcaller('interrupt'), self.bins) |
46 | map(methodcaller('wait'), self.bins) | 44 | map(methodcaller('wait'), self.bins) |
47 | 45 | ||
48 | |||
49 | class LogTracer(Tracer): | 46 | class LogTracer(Tracer): |
50 | DEVICE_STR = '/dev/litmus/log' | 47 | DEVICE_STR = '/dev/litmus/log' |
51 | 48 | ||
@@ -63,6 +60,9 @@ class LogTracer(Tracer): | |||
63 | def enabled(): | 60 | def enabled(): |
64 | return litmus_util.is_device(LogTracer.DEVICE_STR) | 61 | return litmus_util.is_device(LogTracer.DEVICE_STR) |
65 | 62 | ||
63 | def stop_tracing(self): | ||
64 | map(methodcaller('interrupt'), self.bins) | ||
65 | map(methodcaller('wait', False), self.bins) | ||
66 | 66 | ||
67 | class SchedTracer(Tracer): | 67 | class SchedTracer(Tracer): |
68 | DEVICE_STR = '/dev/litmus/sched_trace' | 68 | DEVICE_STR = '/dev/litmus/sched_trace' |
@@ -76,14 +76,14 @@ class SchedTracer(Tracer): | |||
76 | stdout_f = open('%s/st-%d.bin' % (self.output_dir, cpu), 'w') | 76 | stdout_f = open('%s/st-%d.bin' % (self.output_dir, cpu), 'w') |
77 | stderr_f = open('%s/st-%d-stderr.txt' % (self.output_dir, cpu), 'w') | 77 | stderr_f = open('%s/st-%d-stderr.txt' % (self.output_dir, cpu), 'w') |
78 | dev = '{0}{1}'.format(SchedTracer.DEVICE_STR, cpu) | 78 | dev = '{0}{1}'.format(SchedTracer.DEVICE_STR, cpu) |
79 | ftc = FTcat(conf.BINS['ftcat'], stdout_f, stderr_f, dev, conf.SCHED_EVENTS, cpu=cpu) | 79 | ftc = FTcat(conf.BINS['ftcat'], stdout_f, stderr_f, dev, |
80 | conf.SCHED_EVENTS, cpu=cpu) | ||
80 | 81 | ||
81 | self.bins.append(ftc) | 82 | self.bins.append(ftc) |
82 | 83 | ||
83 | @staticmethod | 84 | @staticmethod |
84 | def enabled(): | 85 | def enabled(): |
85 | return litmus_util.is_device("%s%d" % (SchedTracer.DEVICE_STR, 0)) | 86 | return litmus_util.is_device("%s%d" % (SchedTracer.DEVICE_STR, 0)) |
86 | |||
87 | 87 | ||
88 | class OverheadTracer(Tracer): | 88 | class OverheadTracer(Tracer): |
89 | DEVICE_STR = '/dev/litmus/ft_trace0' | 89 | DEVICE_STR = '/dev/litmus/ft_trace0' |
@@ -100,8 +100,7 @@ class OverheadTracer(Tracer): | |||
100 | 100 | ||
101 | @staticmethod | 101 | @staticmethod |
102 | def enabled(): | 102 | def enabled(): |
103 | return litmus_util.is_device(OverheadTracer.DEVICE_STR) | 103 | return litmus_util.is_device(OverheadTracer.DEVICE_STR) |
104 | |||
105 | 104 | ||
106 | class PerfTracer(Tracer): | 105 | class PerfTracer(Tracer): |
107 | def __init__(self, output_dir): | 106 | def __init__(self, output_dir): |