aboutsummaryrefslogtreecommitdiffstats
path: root/run/tracer.py
diff options
context:
space:
mode:
authorJonathan Herman <hermanjl@cs.unc.edu>2013-02-21 18:32:24 -0500
committerJonathan Herman <hermanjl@cs.unc.edu>2013-02-21 18:32:24 -0500
commit6e2b99a0870e467e35c8b4b95aeb1e665dded413 (patch)
tree1e4b4d000c6b53b93a35b5446dc774d4799c987c /run/tracer.py
parent9bcbb4048cd82ea11ed469731eae95d808b99449 (diff)
Many bugfixes motivated by some end-to-end testing.
Diffstat (limited to 'run/tracer.py')
-rw-r--r--run/tracer.py19
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 @@
1import litmus_util 1from . import litmus_util
2import os 2import os
3import config.config as conf 3import config.config as conf
4 4
5from operator import methodcaller 5from operator import methodcaller
6from executable.ftcat import FTcat,Executable 6from run.executable.ftcat import FTcat,Executable
7
8 7
9class Tracer(object): 8class 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
23class LinuxTracer(Tracer): 21class 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
49class LogTracer(Tracer): 46class 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
67class SchedTracer(Tracer): 67class 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
88class OverheadTracer(Tracer): 88class 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
106class PerfTracer(Tracer): 105class PerfTracer(Tracer):
107 def __init__(self, output_dir): 106 def __init__(self, output_dir):