summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--litmus01.pdfbin681011 -> 0 bytes
-rw-r--r--litmus02.pdfbin899823 -> 0 bytes
m---------mac6
-rw-r--r--reader/__init__.py4
-rw-r--r--reader/gedf_test.py163
-rw-r--r--reader/naive_trace_reader.py165
-rwxr-xr-xreader/runtests.py47
-rwxr-xr-xreader/sample_script.py41
-rw-r--r--reader/sample_script.py~41
-rw-r--r--reader/sanitizer.py53
-rw-r--r--reader/stats.py39
-rw-r--r--reader/stdout_printer.py69
-rwxr-xr-xreader/test.py15
-rwxr-xr-xsample_script.py49
-rw-r--r--traces/g1.pdfbin12747 -> 0 bytes
-rw-r--r--traces/g2.pdfbin21284 -> 0 bytes
-rw-r--r--traces/g3.pdfbin18260 -> 0 bytes
-rw-r--r--traces/g4.pdfbin50607 -> 0 bytes
-rw-r--r--traces/g5.pdfbin141031 -> 0 bytes
-rw-r--r--traces/g6.pdfbin142968 -> 0 bytes
-rw-r--r--traces/heavy.ts9
-rw-r--r--traces/heavy2.ts7
-rw-r--r--traces/light.ts9
-rw-r--r--traces/medium.ts7
-rw-r--r--traces/mixed.ts15
-rw-r--r--traces/st-g1-0.binbin42528 -> 0 bytes
-rw-r--r--traces/st-g1-1.binbin42768 -> 0 bytes
-rw-r--r--traces/st-g1-2.binbin47592 -> 0 bytes
-rw-r--r--traces/st-g1-3.binbin50496 -> 0 bytes
-rw-r--r--traces/st-g3-0.binbin2640 -> 0 bytes
-rw-r--r--traces/st-g3-1.binbin1872 -> 0 bytes
-rw-r--r--traces/st-g3-2.binbin2088 -> 0 bytes
-rw-r--r--traces/st-g3-3.binbin2832 -> 0 bytes
-rw-r--r--traces/st-g4-0.binbin11208 -> 0 bytes
-rw-r--r--traces/st-g4-1.binbin10848 -> 0 bytes
-rw-r--r--traces/st-g4-2.binbin10392 -> 0 bytes
-rw-r--r--traces/st-g4-3.binbin10536 -> 0 bytes
-rw-r--r--traces/st-g5-0.binbin44904 -> 0 bytes
-rw-r--r--traces/st-g5-1.binbin47520 -> 0 bytes
-rw-r--r--traces/st-g5-2.binbin51552 -> 0 bytes
-rw-r--r--traces/st-g5-3.binbin56064 -> 0 bytes
-rw-r--r--traces/st-g6-0.binbin46656 -> 0 bytes
-rw-r--r--traces/st-g6-1.binbin53064 -> 0 bytes
-rw-r--r--traces/st-g6-2.binbin52368 -> 0 bytes
-rw-r--r--traces/st-g6-3.binbin54960 -> 0 bytes
-rw-r--r--traces/st-heavy-0.binbin33648 -> 0 bytes
-rw-r--r--traces/st-heavy-1.binbin34224 -> 0 bytes
-rw-r--r--traces/st-heavy-2.binbin35472 -> 0 bytes
-rw-r--r--traces/st-heavy-3.binbin34008 -> 0 bytes
-rw-r--r--traces/st-heavy2-0.binbin28608 -> 0 bytes
-rw-r--r--traces/st-heavy2-1.binbin32352 -> 0 bytes
-rw-r--r--traces/st-heavy2-2.binbin27864 -> 0 bytes
-rw-r--r--traces/st-heavy2-3.binbin29424 -> 0 bytes
-rw-r--r--traces/st-heavy3-0.binbin28896 -> 0 bytes
-rw-r--r--traces/st-heavy3-1.binbin30936 -> 0 bytes
-rw-r--r--traces/st-heavy3-2.binbin28704 -> 0 bytes
-rw-r--r--traces/st-heavy3-3.binbin30144 -> 0 bytes
-rw-r--r--traces/st-mac-0.binbin9288 -> 0 bytes
-rw-r--r--traces/st-mac-1.binbin10152 -> 0 bytes
-rw-r--r--traces/st-mac-test-0.binbin58944 -> 0 bytes
-rw-r--r--traces/st-mac2-0.binbin10536 -> 0 bytes
-rw-r--r--traces/st-s1-0.binbin47424 -> 0 bytes
-rw-r--r--traces/st-s1-1.binbin61488 -> 0 bytes
-rw-r--r--traces/st-s1-2.binbin57336 -> 0 bytes
-rw-r--r--traces/st-s1-3.binbin48984 -> 0 bytes
-rw-r--r--traces/st-s2-0.binbin82320 -> 0 bytes
-rw-r--r--traces/st-s2-1.binbin135288 -> 0 bytes
-rw-r--r--traces/st-s2-2.binbin93264 -> 0 bytes
-rw-r--r--traces/st-s2-3.binbin58560 -> 0 bytes
-rw-r--r--traces/st-x10-0.binbin44448 -> 0 bytes
-rw-r--r--traces/st-x10-1.binbin7536 -> 0 bytes
-rw-r--r--traces/st-x10-2.binbin30216 -> 0 bytes
-rw-r--r--traces/st-x10-3.binbin7440 -> 0 bytes
-rw-r--r--traces/st-x11-0.binbin33408 -> 0 bytes
-rw-r--r--traces/st-x11-1.binbin34656 -> 0 bytes
-rw-r--r--traces/st-x11-2.binbin33216 -> 0 bytes
-rw-r--r--traces/st-x11-3.binbin33240 -> 0 bytes
-rw-r--r--traces/st-x12-0.binbin80352 -> 0 bytes
-rw-r--r--traces/st-x12-1.binbin174744 -> 0 bytes
-rw-r--r--traces/st-x12-2.binbin90552 -> 0 bytes
-rw-r--r--traces/st-x12-3.binbin104088 -> 0 bytes
-rw-r--r--traces/st-x13-0.binbin72456 -> 0 bytes
-rw-r--r--traces/st-x13-1.binbin315360 -> 0 bytes
-rw-r--r--traces/st-x13-2.binbin318888 -> 0 bytes
-rw-r--r--traces/st-x13-3.binbin258192 -> 0 bytes
-rw-r--r--traces/st-x14-0.binbin73272 -> 0 bytes
-rw-r--r--traces/st-x14-1.binbin336192 -> 0 bytes
-rw-r--r--traces/st-x14-2.binbin309768 -> 0 bytes
-rw-r--r--traces/st-x14-3.binbin268992 -> 0 bytes
-rw-r--r--traces/st-x15-0.binbin86592 -> 0 bytes
-rw-r--r--traces/st-x15-1.binbin371160 -> 0 bytes
-rw-r--r--traces/st-x15-2.binbin365496 -> 0 bytes
-rw-r--r--traces/st-x15-3.binbin301728 -> 0 bytes
-rw-r--r--traces/st-x16-0.binbin44016 -> 0 bytes
-rw-r--r--traces/st-x16-1.binbin77568 -> 0 bytes
-rw-r--r--traces/st-x16-2.binbin76296 -> 0 bytes
-rw-r--r--traces/st-x16-3.binbin65040 -> 0 bytes
-rw-r--r--traces/st-x17-0.binbin203472 -> 0 bytes
-rw-r--r--traces/st-x17-1.binbin484368 -> 0 bytes
-rw-r--r--traces/st-x17-2.binbin331704 -> 0 bytes
-rw-r--r--traces/st-x17-3.binbin280800 -> 0 bytes
-rw-r--r--traces/st-x18-0.binbin49632 -> 0 bytes
-rw-r--r--traces/st-x18-1.binbin61488 -> 0 bytes
-rw-r--r--traces/st-x18-2.binbin60264 -> 0 bytes
-rw-r--r--traces/st-x18-3.binbin54048 -> 0 bytes
-rw-r--r--traces/st-x19-0.binbin81888 -> 0 bytes
-rw-r--r--traces/st-x19-1.binbin185208 -> 0 bytes
-rw-r--r--traces/st-x19-2.binbin135936 -> 0 bytes
-rw-r--r--traces/st-x19-3.binbin102552 -> 0 bytes
-rw-r--r--traces/st-x2-0.binbin24480 -> 0 bytes
-rw-r--r--traces/st-x2-1.binbin25176 -> 0 bytes
-rw-r--r--traces/st-x2-2.binbin1632 -> 0 bytes
-rw-r--r--traces/st-x2-3.binbin1056 -> 0 bytes
-rw-r--r--traces/st-x3-0.binbin34752 -> 0 bytes
-rw-r--r--traces/st-x3-1.binbin36936 -> 0 bytes
-rw-r--r--traces/st-x3-2.binbin36576 -> 0 bytes
-rw-r--r--traces/st-x3-3.binbin33888 -> 0 bytes
-rw-r--r--traces/st-x4-0.binbin20640 -> 0 bytes
-rw-r--r--traces/st-x4-1.binbin22632 -> 0 bytes
-rw-r--r--traces/st-x4-2.binbin1800 -> 0 bytes
-rw-r--r--traces/st-x4-3.binbin936 -> 0 bytes
-rw-r--r--traces/st-x5-0.binbin16824 -> 0 bytes
-rw-r--r--traces/st-x5-1.binbin31824 -> 0 bytes
-rw-r--r--traces/st-x5-2.binbin2544 -> 0 bytes
-rw-r--r--traces/st-x5-3.binbin30048 -> 0 bytes
-rw-r--r--traces/st-x6-0.binbin22632 -> 0 bytes
-rw-r--r--traces/st-x6-1.binbin22728 -> 0 bytes
-rw-r--r--traces/st-x6-2.binbin1848 -> 0 bytes
-rw-r--r--traces/st-x6-3.binbin720 -> 0 bytes
-rw-r--r--traces/st-x7-0.binbin22032 -> 0 bytes
-rw-r--r--traces/st-x7-1.binbin22848 -> 0 bytes
-rw-r--r--traces/st-x7-2.binbin960 -> 0 bytes
-rw-r--r--traces/st-x7-3.binbin936 -> 0 bytes
-rw-r--r--traces/st-x9-0.binbin33096 -> 0 bytes
-rw-r--r--traces/st-x9-1.binbin33384 -> 0 bytes
-rw-r--r--traces/st-x9-2.binbin33072 -> 0 bytes
-rw-r--r--traces/st-x9-3.binbin33000 -> 0 bytes
-rw-r--r--traces/st-xxx-0.binbin22392 -> 0 bytes
-rw-r--r--traces/st-xxx-1.binbin24120 -> 0 bytes
-rw-r--r--traces/st-xxx-2.binbin23784 -> 0 bytes
-rw-r--r--traces/st-xxx-3.binbin1008 -> 0 bytes
-rw-r--r--traces/st0.fgbin319488 -> 0 bytes
-rw-r--r--traces/st1.fgbin286720 -> 0 bytes
-rw-r--r--traces/stg20.binbin1416 -> 0 bytes
-rw-r--r--traces/stg21.binbin672 -> 0 bytes
-rw-r--r--traces/stg22.binbin744 -> 0 bytes
-rw-r--r--traces/stg23.binbin888 -> 0 bytes
-rw-r--r--traces/test.pdfbin3893 -> 0 bytes
-rw-r--r--traces/x11.pdfbin53568 -> 0 bytes
-rw-r--r--traces/x12.pdfbin13280 -> 0 bytes
-rw-r--r--traces/x13.pdfbin113497 -> 0 bytes
-rw-r--r--traces/x14.pdfbin113369 -> 0 bytes
-rw-r--r--traces/x15.pdfbin138880 -> 0 bytes
-rw-r--r--traces/x16.pdfbin80694 -> 0 bytes
-rw-r--r--traces/x17.pdfbin374581 -> 0 bytes
-rw-r--r--traces/x18.pdfbin80777 -> 0 bytes
-rw-r--r--traces/x19.pdfbin176625 -> 0 bytes
-rwxr-xr-xvisualizer.py26
-rw-r--r--viz/__init__.py1
-rw-r--r--viz/convert.py (renamed from convert.py)4
-rw-r--r--viz/trace_reader.py (renamed from reader/trace_reader.py)0
161 files changed, 42 insertions, 728 deletions
diff --git a/litmus01.pdf b/litmus01.pdf
deleted file mode 100644
index 4fba2fa..0000000
--- a/litmus01.pdf
+++ /dev/null
Binary files differ
diff --git a/litmus02.pdf b/litmus02.pdf
deleted file mode 100644
index bcfdcab..0000000
--- a/litmus02.pdf
+++ /dev/null
Binary files differ
diff --git a/mac b/mac
deleted file mode 160000
Subproject cd6e43f37856f7fe6b60e0e2ae45f864a4bd6d6
diff --git a/reader/__init__.py b/reader/__init__.py
deleted file mode 100644
index afbfe44..0000000
--- a/reader/__init__.py
+++ /dev/null
@@ -1,4 +0,0 @@
1import trace_reader
2import gedf_test
3import sanitizer
4import stats
diff --git a/reader/gedf_test.py b/reader/gedf_test.py
deleted file mode 100644
index e31fb19..0000000
--- a/reader/gedf_test.py
+++ /dev/null
@@ -1,163 +0,0 @@
1###############################################################################
2# Description
3###############################################################################
4
5# G-EDF Test
6
7###############################################################################
8# Imports
9###############################################################################
10
11import copy
12
13
14##############################################################################
15# Public Functions
16##############################################################################
17
18def gedf_test(stream):
19
20 # Two lists to model the system: tasks occupying a CPU and tasks eligible
21 # to do so. Also, m = the number of CPUs.
22 eligible = []
23 on_cpu = []
24 m = None
25
26 # Time of the last record we saw. Only run the G-EDF test when the time
27 # is updated.
28 last_time = None
29
30 for record in stream:
31 if record.record_type != "event":
32 if record.record_type == "meta" and record.type_name == "num_cpus":
33 m = record.num_cpus
34 continue
35
36 # Check for inversion starts and ends and yield them.
37 # Only to the check when time has moved forward.
38 # (It is common to have records with simultaneous timestamps.)
39 if last_time is not None and last_time != record.when:
40 errors = _gedf_check(eligible,on_cpu,record.when,m)
41 for error in errors:
42 yield error
43
44 # Add a newly-released Job to the eligible queue
45 if record.type_name == 'release':
46 eligible.append(Job(record))
47
48 # Move a Job from the eligible queue to on_cpu
49 elif record.type_name == 'switch_to':
50 pos = _find_job(record,eligible)
51 job = eligible[pos]
52 del eligible[pos]
53 on_cpu.append(job)
54
55 # Mark a Job as completed.
56 # The only time a Job completes when it is not on a
57 # CPU is when it is the last job of the task.
58 elif record.type_name == 'completion':
59 pos = _find_job(record,on_cpu)
60 if pos is not None:
61 on_cpu[pos].is_complete = True
62 else:
63 pos = _find_job(record,eligible)
64 del eligible[pos]
65
66 # A job is switched away from a CPU. If it has
67 # been marked as complete, remove it from the model.
68 elif record.type_name == 'switch_away':
69 pos = _find_job(record,on_cpu)
70 job = on_cpu[pos]
71 del on_cpu[pos]
72 if job.is_complete == False:
73 eligible.append(job)
74
75 last_time = record.when
76 yield record
77
78###############################################################################
79# Private Functions
80###############################################################################
81
82# Internal representation of a Job
83class Job(object):
84 def __init__(self, record):
85 self.pid = record.pid
86 self.job = record.job
87 self.deadline = record.deadline
88 self.is_complete = False
89 self.inversion_start = None
90 self.inversion_end = None
91 def __str__(self):
92 return "(%d.%d:%d)" % (self.pid,self.job,self.deadline)
93
94# G-EDF errors: the start or end of an inversion
95class Error(object):
96 def __init__(self, job, eligible, on_cpu):
97 self.job = copy.copy(job)
98 self.eligible = copy.copy(eligible)
99 self.on_cpu = copy.copy(on_cpu)
100 self.record_type = 'error'
101 if job.inversion_end is None:
102 self.type_name = 'inversion_start'
103 else:
104 self.type_name = 'inversion_end'
105
106# Returns the position of a Job in a list, or None
107def _find_job(record,list):
108 for i in range(0,len(list)):
109 if list[i].pid == record.pid and list[i].job == record.job:
110 return i
111 return None
112
113# Return records for any inversion_starts and inversion_ends
114def _gedf_check(eligible,on_cpu,when,m):
115
116 # List of error records to be returned
117 errors = []
118
119 # List of all jobs that are not complete
120 all = []
121 for x in on_cpu:
122 if x.is_complete is not True:
123 all.append(x)
124 all += eligible
125
126 # Sort by on_cpu and then by deadline. sort() is guaranteed to be stable.
127 # Thus, this gives us jobs ordered by deadline with preference to those
128 # actually running.
129 all.sort(key=lambda x: 0 if (x in on_cpu) else 1)
130 all.sort(key=lambda x: x.deadline)
131
132 # Check those that actually should be running
133 for x in range(0,min(m,len(all))):
134 job = all[x]
135
136 # It's not running and an inversion_start has not been recorded
137 if job not in on_cpu and job.inversion_start is None:
138 job.inversion_start = when
139 errors.append(Error(job, eligible, on_cpu))
140
141 # It is running and an inversion_start exists (i.e. it it still
142 # marked as being inverted)
143 elif job in on_cpu and job.inversion_start is not None:
144 job.inversion_end = when
145 errors.append(Error(job, eligible, on_cpu))
146 job.inversion_start = None
147 job.inversion_end = None
148
149 # Check those that actually should not be running
150 for x in range(m,len(all)):
151 job = all[x]
152
153 # It actually is running. We don't care.
154
155 # It isn't running, but an inversion_start exists (i.e. it is still
156 # marked as being inverted)
157 if job not in on_cpu and job.inversion_start is not None:
158 job.inversion_end = when
159 errors.append(Error(job, eligible, on_cpu))
160 job.inversion_start = None
161 job.inversion_end = None
162
163 return errors
diff --git a/reader/naive_trace_reader.py b/reader/naive_trace_reader.py
deleted file mode 100644
index 0f117b8..0000000
--- a/reader/naive_trace_reader.py
+++ /dev/null
@@ -1,165 +0,0 @@
1###############################################################################
2# Description
3###############################################################################
4
5# trace_reader(files) returns an iterator which produces records
6# OUT OF ORDER from the files given. (the param is a list of files.)
7#
8# The non-naive trace_reader has a lot of complex logic which attempts to
9# produce records in order (even though they are being pulled from multiple
10# files which themselves are only approximately ordered). This trace_reader
11# attempts to be as simple as possible and is used in the unit tests to
12# make sure the total number of records read by the normal trace_reader is
13# the same as the number of records read by this one.
14
15###############################################################################
16# Imports
17###############################################################################
18
19import struct
20
21
22###############################################################################
23# Public functions
24###############################################################################
25
26# Generator function returning an iterable over records in a trace file.
27def trace_reader(files):
28 for file in files:
29 f = open(file,'rb')
30 while True:
31 data = f.read(RECORD_HEAD_SIZE)
32 try:
33 type_num = struct.unpack_from('b',data)[0]
34 except struct.error:
35 break #We read to the end of the file
36 type = _get_type(type_num)
37 try:
38 values = struct.unpack_from(StHeader.format +
39 type.format,data)
40 record_dict = dict(zip(type.keys,values))
41 except struct.error:
42 f.close()
43 print "Invalid record detected, stopping."
44 exit()
45
46 # Convert the record_dict into an object
47 record = _dict2obj(record_dict)
48
49 # Give it a type name (easier to work with than type number)
50 record.type_name = _get_type_name(type_num)
51
52 # All records should have a 'record type' field.
53 # e.g. these are 'event's as opposed to 'error's
54 record.record_type = "event"
55
56 # If there is no timestamp, set the time to 0
57 if 'when' not in record.__dict__.keys():
58 record.when = 0
59
60 yield record
61
62###############################################################################
63# Private functions
64###############################################################################
65
66# Convert a dict into an object
67def _dict2obj(d):
68 class Obj: pass
69 o = Obj()
70 for key in d.keys():
71 o.__dict__[key] = d[key]
72 return o
73
74###############################################################################
75# Trace record data types and accessor functions
76###############################################################################
77
78# Each class below represents a type of event record. The format attribute
79# specifies how to decode the binary record and the keys attribute
80# specifies how to name the pieces of information decoded. Note that all
81# event records have a common initial 24 bytes, represented by the StHeader
82# class.
83
84RECORD_HEAD_SIZE = 24
85
86class StHeader(object):
87 format = '<bbhi'
88 formatStr = struct.Struct(format)
89 keys = ['type','cpu','pid','job']
90 message = 'The header.'
91
92class StNameData(object):
93 format = '16s'
94 formatStr = struct.Struct(StHeader.format + format)
95 keys = StHeader.keys + ['name']
96 message = 'The name of the executable of this process.'
97
98class StParamData(object):
99 format = 'IIIc'
100 formatStr = struct.Struct(StHeader.format + format)
101 keys = StHeader.keys + ['wcet','period','phase','partition']
102 message = 'Regular parameters.'
103
104class StReleaseData(object):
105 format = 'QQ'
106 formatStr = struct.Struct(StHeader.format + format)
107 keys = StHeader.keys + ['when','deadline']
108 message = 'A job was/is going to be released.'
109
110#Not yet used by Sched Trace
111class StAssignedData(object):
112 format = 'Qc'
113 formatStr = struct.Struct(StHeader.format + format)
114 keys = StHeader.keys + ['when','target']
115 message = 'A job was assigned to a CPU.'
116
117class StSwitchToData(object):
118 format = 'QI'
119 formatStr = struct.Struct(StHeader.format + format)
120 keys = StHeader.keys + ['when','exec_time']
121 message = 'A process was switched to on a given CPU.'
122
123class StSwitchAwayData(object):
124 format = 'QI'
125 formatStr = struct.Struct(StHeader.format + format)
126 keys = StHeader.keys + ['when','exec_time']
127 message = 'A process was switched away on a given CPU.'
128
129class StCompletionData(object):
130 format = 'Q3xcc'
131 formatStr = struct.Struct(StHeader.format + format)
132 keys = StHeader.keys + ['when','forced?','flags']
133 message = 'A job completed.'
134
135class StBlockData(object):
136 format = 'Q'
137 formatStr = struct.Struct(StHeader.format + format)
138 keys = StHeader.keys + ['when']
139 message = 'A task blocks.'
140
141class StResumeData(object):
142 format = 'Q'
143 formatStr = struct.Struct(StHeader.format + format)
144 keys = StHeader.keys + ['when']
145 message = 'A task resumes.'
146
147class StSysReleaseData(object):
148 format = 'QQ'
149 formatStr = struct.Struct(StHeader.format + format)
150 keys = StHeader.keys + ['when','release']
151 message = 'All tasks have checked in, task system released by user'
152
153# Return the binary data type, given the type_num
154def _get_type(type_num):
155 types = [None,StNameData,StParamData,StReleaseData,StAssignedData,
156 StSwitchToData,StSwitchAwayData,StCompletionData,StBlockData,
157 StResumeData,StSysReleaseData]
158 return types[type_num]
159
160# Return the type name, given the type_num (this is simply a convenience to
161# programmers of other modules)
162def _get_type_name(type_num):
163 type_names = [None,"name","params","release","assign","switch_to",
164 "switch_away","completion","block","resume","sys_release"]
165 return type_names[type_num]
diff --git a/reader/runtests.py b/reader/runtests.py
deleted file mode 100755
index 88dddf4..0000000
--- a/reader/runtests.py
+++ /dev/null
@@ -1,47 +0,0 @@
1#!/usr/bin/python
2
3###############################################################################
4# Description
5###############################################################################
6
7# Unit Tests
8
9
10###############################################################################
11# Imports
12###############################################################################
13
14import trace_reader
15import naive_trace_reader
16import os
17
18###############################################################################
19# Trace files
20###############################################################################
21
22files = [
23'./sample_traces/st-g6-0.bin',
24'./sample_traces/st-g6-1.bin',
25'./sample_traces/st-g6-2.bin',
26'./sample_traces/st-g6-3.bin',
27]
28
29###############################################################################
30# Tests
31###############################################################################
32
33# Does our fancy trace reader get the same number of files as our naive one?
34# (See naive_trace_reader.py for further explanation)
35def test1():
36 stream = trace_reader.trace_reader(files)
37 num_records = len(list(stream))
38 stream = naive_trace_reader.trace_reader(files)
39 naive_num_records = len(list(stream))
40
41 # We need a +1 here because the fancy reader produces a 'meta' record
42 # indicating the number of CPUs
43 if num_records != naive_num_records + 1:
44 return "[FAIL]"
45 return "[SUCCESS]"
46
47print "Test 1: %s" % (test1())
diff --git a/reader/sample_script.py b/reader/sample_script.py
deleted file mode 100755
index f7e9297..0000000
--- a/reader/sample_script.py
+++ /dev/null
@@ -1,41 +0,0 @@
1#!/usr/bin/python
2
3# This is a sample script for using the tool. I would recommend copying
4# this and modifying it to suit your needs for a particular test. Make
5# sure you redirect the output to a file (e.g. ./sample_script.py > output).
6
7# Import the modules we need. You should not need to know about
8# their internals.
9import trace_reader
10import sanitizer
11import gedf_test
12import stats
13import stdout_printer
14
15# Specify your trace files
16g6 = [
17'../sample_traces/st-g6-0.bin',
18'../sample_traces/st-g6-1.bin',
19'../sample_traces/st-g6-2.bin',
20'../sample_traces/st-g6-3.bin',
21]
22
23# Here is an example of a custom filter function.
24# It will remove from the error stream all inversion_end records indicating
25# an inversion of less than 4000000 time units. Thus, you can grep through
26# the output looking 'Inversion end' and find only errors for particularly
27# long inversions. This is commented out in the pipeline (below) since you
28# probably don't want it in general.
29def my_filter(record):
30 if record.record_type == 'error' and record.type_name == 'inversion_end':
31 if record.job.inversion_end - record.job.inversion_start < 4000000:
32 return False
33 return True
34
35# Pipeline
36stream = trace_reader.trace_reader(g6) # Read events from traces
37stream = sanitizer.sanitizer(stream) # Remove garbage events
38stream = gedf_test.gedf_test(stream) # Produce G-EDF error records
39stream = stats.stats(stream) # Produce a statistics record
40#stream = filter(my_filter, stream) # Filter some records before printing
41stdout_printer.stdout_printer(stream) # Print records to stdout
diff --git a/reader/sample_script.py~ b/reader/sample_script.py~
deleted file mode 100644
index c3b7843..0000000
--- a/reader/sample_script.py~
+++ /dev/null
@@ -1,41 +0,0 @@
1#!/usr/bin/python
2
3# This is a sample script for using the tool. I would recommend copying
4# this and modifying it to suit your needs for a particular test. Make
5# sure you redirect the output to a file (e.g. ./sample_script.py > output).
6
7# Import the modules we need. You should not need to know about
8# their internals.
9import trace_reader
10import sanitizer
11import gedf_test
12import stats
13import stdout_printer
14
15# Specify your trace files
16g6 = [
17'./sample_traces/st-g6-0.bin',
18'./sample_traces/st-g6-1.bin',
19'./sample_traces/st-g6-2.bin',
20'./sample_traces/st-g6-3.bin',
21]
22
23# Here is an example of a custom filter function.
24# It will remove from the error stream all inversion_end records indicating
25# an inversion of less than 4000000 time units. Thus, you can grep through
26# the output looking 'Inversion end' and find only errors for particularly
27# long inversions. This is commented out in the pipeline (below) since you
28# probably don't want it in general.
29def my_filter(record):
30 if record.record_type == 'error' and record.type_name == 'inversion_end':
31 if record.job.inversion_end - record.job.inversion_start < 4000000:
32 return False
33 return True
34
35# Pipeline
36stream = trace_reader.trace_reader(g6) # Read events from traces
37stream = sanitizer.sanitizer(stream) # Remove garbage events
38stream = gedf_test.gedf_test(stream) # Produce G-EDF error records
39stream = stats.stats(stream) # Produce a statistics record
40#stream = filter(my_filter, stream) # Filter some records before printing
41stdout_printer.stdout_printer(stream) # Print records to stdout
diff --git a/reader/sanitizer.py b/reader/sanitizer.py
deleted file mode 100644
index 79315cc..0000000
--- a/reader/sanitizer.py
+++ /dev/null
@@ -1,53 +0,0 @@
1###############################################################################
2# Description
3###############################################################################
4
5# Sanitize input. (There are a number of goofy issues with the sched_trace
6# output.)
7
8###############################################################################
9# Public functions
10###############################################################################
11
12def sanitizer(stream):
13
14 job_2s_released = [] # list of tasks which have released their job 2s
15 jobs_switched_to = []
16
17 for record in stream:
18
19 # Ignore records which are not events (e.g. the num_cpus record)
20 if record.record_type != 'event':
21 yield record
22 continue
23
24 # All records with job < 2 are garbage
25 if record.job < 2:
26 continue
27
28 # Some records with job == 2 are garbage
29 if record.job==2:
30
31 # There is a duplicate release of every job 2
32 # This will throw away the second one
33 if record.type_name == 'release':
34 if record.pid in job_2s_released:
35 continue
36 else:
37 job_2s_released.append(record.pid)
38
39 # Job 2 has a resume that is garbage
40 if record.type_name == 'resume':
41 continue
42
43 # By default, the switch_away for a job (after it has completed)
44 # is maked as being for job+1, which has never been switched to.
45 # We can correct this if we note which jobs really
46 # have been switched to.
47 if record.type_name == 'switch_to':
48 jobs_switched_to.append((record.pid,record.job))
49 if record.type_name == 'switch_away':
50 if (record.pid,record.job) not in jobs_switched_to:
51 record.job -= 1
52
53 yield record
diff --git a/reader/stats.py b/reader/stats.py
deleted file mode 100644
index 34a842f..0000000
--- a/reader/stats.py
+++ /dev/null
@@ -1,39 +0,0 @@
1###############################################################################
2# Description
3###############################################################################
4# Compute and produce statistics
5
6
7###############################################################################
8# Public Functions
9###############################################################################
10
11def stats(stream):
12 min_inversion = -1
13 max_inversion = -1
14 sum_inversions = 0
15 num_inversions = 0
16 for record in stream:
17 if record.type_name == 'inversion_end':
18 length = record.job.inversion_end - record.job.inversion_start
19 if length > 0:
20 num_inversions += 1
21 if length > max_inversion:
22 max_inversion = length
23 if length < min_inversion or min_inversion == -1:
24 min_inversion = length
25 sum_inversions += length
26 yield record
27 if num_inversions > 0:
28 avg_inversion = int(sum_inversions / num_inversions)
29 else:
30 avg_inversion = 0
31 class Obj(object): pass
32 rec = Obj()
33 rec.record_type = "meta"
34 rec.type_name = "stats"
35 rec.num_inversions = num_inversions
36 rec.min_inversion = min_inversion
37 rec.max_inversion = max_inversion
38 rec.avg_inversion = avg_inversion
39 yield rec
diff --git a/reader/stdout_printer.py b/reader/stdout_printer.py
deleted file mode 100644
index f8d9a84..0000000
--- a/reader/stdout_printer.py
+++ /dev/null
@@ -1,69 +0,0 @@
1###############################################################################
2# Description
3###############################################################################
4
5# Prints records to standard out
6
7###############################################################################
8# Public functions
9###############################################################################
10
11def stdout_printer(stream):
12 for record in stream:
13 if record.record_type == "event":
14 _print_event(record)
15 elif record.record_type == "meta" and record.type_name == "stats":
16 _print_stats(record)
17 elif record.record_type == "error" and record.type_name == 'inversion_start':
18 _print_inversion_start(record)
19 elif record.record_type == "error" and record.type_name == 'inversion_end':
20 _print_inversion_end(record)
21 else:
22 continue
23 print ""
24
25###############################################################################
26# Private functions
27###############################################################################
28
29def _print_event(record):
30 print "Job: %d.%d" % (record.pid,record.job)
31 print "Type: %s" % (record.type_name)
32 print "Time: %d" % (record.when)
33
34def _print_inversion_start(record):
35 print "Type: %s" % ("Inversion start")
36 print "Time: %d" % (record.job.inversion_start)
37 print "Job: %d.%d" % (record.job.pid,record.job.job)
38 print "Deadline: %d" % (record.job.deadline)
39 print "Eligible: ",
40 for job in record.eligible:
41 print str(job) + " ",
42 print
43 print "On CPU: ",
44 for job in record.on_cpu:
45 print str(job) + " ",
46 print #newline
47
48def _print_inversion_end(record):
49 print "Type: %s" % ("Inversion end")
50 print "Time: %d" % (record.job.inversion_end)
51 print "Duration: %d" % (
52 record.job.inversion_end - record.job.inversion_start)
53 print "Job: %d.%d" % (record.job.pid,record.job.job)
54 print "Deadline: %d" % (record.job.deadline)
55 print "Eligible: ",
56 for job in record.eligible:
57 print str(job) + " ",
58 print
59 print "On CPU: ",
60 for job in record.on_cpu:
61 print str(job) + " ",
62 print #newline
63
64def _print_stats(record):
65 print "Inversion statistics"
66 print "Num inversions: %d" % (record.num_inversions)
67 print "Min inversion: %d" % (record.min_inversion)
68 print "Max inversion: %d" % (record.max_inversion)
69 print "Avg inversion: %d" % (record.avg_inversion)
diff --git a/reader/test.py b/reader/test.py
deleted file mode 100755
index b260314..0000000
--- a/reader/test.py
+++ /dev/null
@@ -1,15 +0,0 @@
1#!/usr/bin/python
2
3import cairo
4
5if __name__ == '__main__':
6 surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 500, 500)
7 ctx = cairo.Context(surface)
8 ctx.move_to(10, 10)
9 ctx.line_to(-100, 10)
10 ctx.set_line_width(2)
11
12 ctx.move_to(10, 10)
13 ctx.line_to(20, 10)
14 ctx.stroke()
15 surface.write_to_png('test.png')
diff --git a/sample_script.py b/sample_script.py
index c3b7843..435cde0 100755
--- a/sample_script.py
+++ b/sample_script.py
@@ -1,9 +1,16 @@
1#!/usr/bin/python 1#!/usr/bin/python
2 2
3################################################################################
4# Description
5################################################################################
3# This is a sample script for using the tool. I would recommend copying 6# This is a sample script for using the tool. I would recommend copying
4# this and modifying it to suit your needs for a particular test. Make 7# this and modifying it to suit your needs for a particular test. Make
5# sure you redirect the output to a file (e.g. ./sample_script.py > output). 8# sure you redirect the output to a file (e.g. ./sample_script.py > output).
6 9
10################################################################################
11# Setup
12################################################################################
13
7# Import the modules we need. You should not need to know about 14# Import the modules we need. You should not need to know about
8# their internals. 15# their internals.
9import trace_reader 16import trace_reader
@@ -11,6 +18,7 @@ import sanitizer
11import gedf_test 18import gedf_test
12import stats 19import stats
13import stdout_printer 20import stdout_printer
21import visualizer
14 22
15# Specify your trace files 23# Specify your trace files
16g6 = [ 24g6 = [
@@ -20,22 +28,37 @@ g6 = [
20'./sample_traces/st-g6-3.bin', 28'./sample_traces/st-g6-3.bin',
21] 29]
22 30
23# Here is an example of a custom filter function. 31################################################################################
24# It will remove from the error stream all inversion_end records indicating 32# Pipeline
25# an inversion of less than 4000000 time units. Thus, you can grep through 33################################################################################
26# the output looking 'Inversion end' and find only errors for particularly 34
27# long inversions. This is commented out in the pipeline (below) since you 35# Read events from traces
28# probably don't want it in general. 36stream = trace_reader.trace_reader(g6)
37
38# Filter out garbage events
39stream = sanitizer.sanitizer(stream)
40
41# Produce G-EDF error records
42stream = gedf_test.gedf_test(stream)
43
44# Produce a statistics record
45stream = stats.stats(stream)
46
47# Filter some records out
48# NOTE: Currently, this will break the Visualizer if enabled
29def my_filter(record): 49def my_filter(record):
30 if record.record_type == 'error' and record.type_name == 'inversion_end': 50 if record.record_type == 'error' and record.type_name == 'inversion_end':
31 if record.job.inversion_end - record.job.inversion_start < 4000000: 51 if record.job.inversion_end - record.job.inversion_start < 4000000:
32 return False 52 return False
33 return True 53 return True
54#stream = filter(my_filter, stream)
34 55
35# Pipeline 56# Split the stream in two, so we can use both output mechanisms
36stream = trace_reader.trace_reader(g6) # Read events from traces 57import itertools
37stream = sanitizer.sanitizer(stream) # Remove garbage events 58stream1, stream2 = itertools.tee(stream,2)
38stream = gedf_test.gedf_test(stream) # Produce G-EDF error records 59
39stream = stats.stats(stream) # Produce a statistics record 60# Print the records to stdout
40#stream = filter(my_filter, stream) # Filter some records before printing 61stdout_printer.stdout_printer(stream1)
41stdout_printer.stdout_printer(stream) # Print records to stdout 62
63# Visualize the records
64visualizer.visualizer(stream2)
diff --git a/traces/g1.pdf b/traces/g1.pdf
deleted file mode 100644
index c9ee920..0000000
--- a/traces/g1.pdf
+++ /dev/null
Binary files differ
diff --git a/traces/g2.pdf b/traces/g2.pdf
deleted file mode 100644
index a807c9f..0000000
--- a/traces/g2.pdf
+++ /dev/null
Binary files differ
diff --git a/traces/g3.pdf b/traces/g3.pdf
deleted file mode 100644
index 3bb4e78..0000000
--- a/traces/g3.pdf
+++ /dev/null
Binary files differ
diff --git a/traces/g4.pdf b/traces/g4.pdf
deleted file mode 100644
index 867f413..0000000
--- a/traces/g4.pdf
+++ /dev/null
Binary files differ
diff --git a/traces/g5.pdf b/traces/g5.pdf
deleted file mode 100644
index c12ebde..0000000
--- a/traces/g5.pdf
+++ /dev/null
Binary files differ
diff --git a/traces/g6.pdf b/traces/g6.pdf
deleted file mode 100644
index 3c8d667..0000000
--- a/traces/g6.pdf
+++ /dev/null
Binary files differ
diff --git a/traces/heavy.ts b/traces/heavy.ts
deleted file mode 100644
index 8df12a0..0000000
--- a/traces/heavy.ts
+++ /dev/null
@@ -1,9 +0,0 @@
1#EXE=200
2#PER=300
3EXE=17
4PER=30
5
6for i in `seq 1 6`
7do
8 rt_launch -w $EXE $PER run
9done
diff --git a/traces/heavy2.ts b/traces/heavy2.ts
deleted file mode 100644
index 23d5e0f..0000000
--- a/traces/heavy2.ts
+++ /dev/null
@@ -1,7 +0,0 @@
1EXE=18
2PER=30
3
4for i in `seq 1 6`
5do
6 rtspin -w $EXE $PER 3 &
7done
diff --git a/traces/light.ts b/traces/light.ts
deleted file mode 100644
index db961b2..0000000
--- a/traces/light.ts
+++ /dev/null
@@ -1,9 +0,0 @@
1#EXE=200
2#PER=300
3EXE=2
4PER=11
5
6for i in `seq 1 18`
7do
8 rt_launch -w $EXE $PER run
9done
diff --git a/traces/medium.ts b/traces/medium.ts
deleted file mode 100644
index a800180..0000000
--- a/traces/medium.ts
+++ /dev/null
@@ -1,7 +0,0 @@
1EXE=2
2PER=12
3
4for i in `seq 1 6`
5do
6 rt_launch -w $EXE $PER run
7done
diff --git a/traces/mixed.ts b/traces/mixed.ts
deleted file mode 100644
index 1258d1a..0000000
--- a/traces/mixed.ts
+++ /dev/null
@@ -1,15 +0,0 @@
1#EXE=200
2#PER=300
3EXE=2
4PER=11
5
6for i in `seq 10 20`
7do
8 rtspin -w $EXE $i 2 &
9done
10
11EXE=17
12for i in 31 32 33
13do
14 rtspin -w $EXE $i 2 &
15done
diff --git a/traces/st-g1-0.bin b/traces/st-g1-0.bin
deleted file mode 100644
index a88bd3e..0000000
--- a/traces/st-g1-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g1-1.bin b/traces/st-g1-1.bin
deleted file mode 100644
index 8439bb8..0000000
--- a/traces/st-g1-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g1-2.bin b/traces/st-g1-2.bin
deleted file mode 100644
index 371bf49..0000000
--- a/traces/st-g1-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g1-3.bin b/traces/st-g1-3.bin
deleted file mode 100644
index fa59c60..0000000
--- a/traces/st-g1-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g3-0.bin b/traces/st-g3-0.bin
deleted file mode 100644
index 37fdbb3..0000000
--- a/traces/st-g3-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g3-1.bin b/traces/st-g3-1.bin
deleted file mode 100644
index 583e1ec..0000000
--- a/traces/st-g3-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g3-2.bin b/traces/st-g3-2.bin
deleted file mode 100644
index d93c7ee..0000000
--- a/traces/st-g3-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g3-3.bin b/traces/st-g3-3.bin
deleted file mode 100644
index 21e0de7..0000000
--- a/traces/st-g3-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g4-0.bin b/traces/st-g4-0.bin
deleted file mode 100644
index c52ed7b..0000000
--- a/traces/st-g4-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g4-1.bin b/traces/st-g4-1.bin
deleted file mode 100644
index 77fea28..0000000
--- a/traces/st-g4-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g4-2.bin b/traces/st-g4-2.bin
deleted file mode 100644
index 4d5d3cd..0000000
--- a/traces/st-g4-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g4-3.bin b/traces/st-g4-3.bin
deleted file mode 100644
index 1cd7ee4..0000000
--- a/traces/st-g4-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g5-0.bin b/traces/st-g5-0.bin
deleted file mode 100644
index c576250..0000000
--- a/traces/st-g5-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g5-1.bin b/traces/st-g5-1.bin
deleted file mode 100644
index 90c4960..0000000
--- a/traces/st-g5-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g5-2.bin b/traces/st-g5-2.bin
deleted file mode 100644
index a06aa10..0000000
--- a/traces/st-g5-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g5-3.bin b/traces/st-g5-3.bin
deleted file mode 100644
index 561b776..0000000
--- a/traces/st-g5-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g6-0.bin b/traces/st-g6-0.bin
deleted file mode 100644
index cebc7fd..0000000
--- a/traces/st-g6-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g6-1.bin b/traces/st-g6-1.bin
deleted file mode 100644
index a51cce9..0000000
--- a/traces/st-g6-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g6-2.bin b/traces/st-g6-2.bin
deleted file mode 100644
index 5d76010..0000000
--- a/traces/st-g6-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-g6-3.bin b/traces/st-g6-3.bin
deleted file mode 100644
index 471fc8d..0000000
--- a/traces/st-g6-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-heavy-0.bin b/traces/st-heavy-0.bin
deleted file mode 100644
index 7a86776..0000000
--- a/traces/st-heavy-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-heavy-1.bin b/traces/st-heavy-1.bin
deleted file mode 100644
index 9b8d976..0000000
--- a/traces/st-heavy-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-heavy-2.bin b/traces/st-heavy-2.bin
deleted file mode 100644
index eb59023..0000000
--- a/traces/st-heavy-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-heavy-3.bin b/traces/st-heavy-3.bin
deleted file mode 100644
index 06f73b5..0000000
--- a/traces/st-heavy-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-heavy2-0.bin b/traces/st-heavy2-0.bin
deleted file mode 100644
index 4931d70..0000000
--- a/traces/st-heavy2-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-heavy2-1.bin b/traces/st-heavy2-1.bin
deleted file mode 100644
index fbe14a0..0000000
--- a/traces/st-heavy2-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-heavy2-2.bin b/traces/st-heavy2-2.bin
deleted file mode 100644
index d8edc0a..0000000
--- a/traces/st-heavy2-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-heavy2-3.bin b/traces/st-heavy2-3.bin
deleted file mode 100644
index c173014..0000000
--- a/traces/st-heavy2-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-heavy3-0.bin b/traces/st-heavy3-0.bin
deleted file mode 100644
index 4af21ed..0000000
--- a/traces/st-heavy3-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-heavy3-1.bin b/traces/st-heavy3-1.bin
deleted file mode 100644
index b62ffac..0000000
--- a/traces/st-heavy3-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-heavy3-2.bin b/traces/st-heavy3-2.bin
deleted file mode 100644
index 39a12e6..0000000
--- a/traces/st-heavy3-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-heavy3-3.bin b/traces/st-heavy3-3.bin
deleted file mode 100644
index ae4a6a4..0000000
--- a/traces/st-heavy3-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-mac-0.bin b/traces/st-mac-0.bin
deleted file mode 100644
index 7bac67d..0000000
--- a/traces/st-mac-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-mac-1.bin b/traces/st-mac-1.bin
deleted file mode 100644
index a8a2f7e..0000000
--- a/traces/st-mac-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-mac-test-0.bin b/traces/st-mac-test-0.bin
deleted file mode 100644
index 06e8403..0000000
--- a/traces/st-mac-test-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-mac2-0.bin b/traces/st-mac2-0.bin
deleted file mode 100644
index 5afe202..0000000
--- a/traces/st-mac2-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-s1-0.bin b/traces/st-s1-0.bin
deleted file mode 100644
index 5ad50f9..0000000
--- a/traces/st-s1-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-s1-1.bin b/traces/st-s1-1.bin
deleted file mode 100644
index 7554c44..0000000
--- a/traces/st-s1-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-s1-2.bin b/traces/st-s1-2.bin
deleted file mode 100644
index 047248c..0000000
--- a/traces/st-s1-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-s1-3.bin b/traces/st-s1-3.bin
deleted file mode 100644
index 039e1a9..0000000
--- a/traces/st-s1-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-s2-0.bin b/traces/st-s2-0.bin
deleted file mode 100644
index 639c561..0000000
--- a/traces/st-s2-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-s2-1.bin b/traces/st-s2-1.bin
deleted file mode 100644
index 36f0254..0000000
--- a/traces/st-s2-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-s2-2.bin b/traces/st-s2-2.bin
deleted file mode 100644
index 777c1f4..0000000
--- a/traces/st-s2-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-s2-3.bin b/traces/st-s2-3.bin
deleted file mode 100644
index 917cb86..0000000
--- a/traces/st-s2-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x10-0.bin b/traces/st-x10-0.bin
deleted file mode 100644
index a372e75..0000000
--- a/traces/st-x10-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x10-1.bin b/traces/st-x10-1.bin
deleted file mode 100644
index bcf8d01..0000000
--- a/traces/st-x10-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x10-2.bin b/traces/st-x10-2.bin
deleted file mode 100644
index 3149ca8..0000000
--- a/traces/st-x10-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x10-3.bin b/traces/st-x10-3.bin
deleted file mode 100644
index cf899fd..0000000
--- a/traces/st-x10-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x11-0.bin b/traces/st-x11-0.bin
deleted file mode 100644
index 8404d49..0000000
--- a/traces/st-x11-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x11-1.bin b/traces/st-x11-1.bin
deleted file mode 100644
index 67e9063..0000000
--- a/traces/st-x11-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x11-2.bin b/traces/st-x11-2.bin
deleted file mode 100644
index a16c740..0000000
--- a/traces/st-x11-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x11-3.bin b/traces/st-x11-3.bin
deleted file mode 100644
index cbc4c54..0000000
--- a/traces/st-x11-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x12-0.bin b/traces/st-x12-0.bin
deleted file mode 100644
index 66a9995..0000000
--- a/traces/st-x12-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x12-1.bin b/traces/st-x12-1.bin
deleted file mode 100644
index 515f953..0000000
--- a/traces/st-x12-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x12-2.bin b/traces/st-x12-2.bin
deleted file mode 100644
index c21fce8..0000000
--- a/traces/st-x12-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x12-3.bin b/traces/st-x12-3.bin
deleted file mode 100644
index bc7be12..0000000
--- a/traces/st-x12-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x13-0.bin b/traces/st-x13-0.bin
deleted file mode 100644
index 023e917..0000000
--- a/traces/st-x13-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x13-1.bin b/traces/st-x13-1.bin
deleted file mode 100644
index 6072f16..0000000
--- a/traces/st-x13-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x13-2.bin b/traces/st-x13-2.bin
deleted file mode 100644
index c59a852..0000000
--- a/traces/st-x13-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x13-3.bin b/traces/st-x13-3.bin
deleted file mode 100644
index 295de3a..0000000
--- a/traces/st-x13-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x14-0.bin b/traces/st-x14-0.bin
deleted file mode 100644
index 19808b3..0000000
--- a/traces/st-x14-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x14-1.bin b/traces/st-x14-1.bin
deleted file mode 100644
index 34b3e63..0000000
--- a/traces/st-x14-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x14-2.bin b/traces/st-x14-2.bin
deleted file mode 100644
index 055851c..0000000
--- a/traces/st-x14-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x14-3.bin b/traces/st-x14-3.bin
deleted file mode 100644
index 9ade092..0000000
--- a/traces/st-x14-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x15-0.bin b/traces/st-x15-0.bin
deleted file mode 100644
index ce0b025..0000000
--- a/traces/st-x15-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x15-1.bin b/traces/st-x15-1.bin
deleted file mode 100644
index 1b2c23e..0000000
--- a/traces/st-x15-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x15-2.bin b/traces/st-x15-2.bin
deleted file mode 100644
index 9da74e5..0000000
--- a/traces/st-x15-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x15-3.bin b/traces/st-x15-3.bin
deleted file mode 100644
index 9645cd9..0000000
--- a/traces/st-x15-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x16-0.bin b/traces/st-x16-0.bin
deleted file mode 100644
index 175e14a..0000000
--- a/traces/st-x16-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x16-1.bin b/traces/st-x16-1.bin
deleted file mode 100644
index 73a1ae5..0000000
--- a/traces/st-x16-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x16-2.bin b/traces/st-x16-2.bin
deleted file mode 100644
index 8fcb27e..0000000
--- a/traces/st-x16-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x16-3.bin b/traces/st-x16-3.bin
deleted file mode 100644
index 6f1d246..0000000
--- a/traces/st-x16-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x17-0.bin b/traces/st-x17-0.bin
deleted file mode 100644
index c03c249..0000000
--- a/traces/st-x17-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x17-1.bin b/traces/st-x17-1.bin
deleted file mode 100644
index c0ea44d..0000000
--- a/traces/st-x17-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x17-2.bin b/traces/st-x17-2.bin
deleted file mode 100644
index 2da0356..0000000
--- a/traces/st-x17-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x17-3.bin b/traces/st-x17-3.bin
deleted file mode 100644
index 207d1a7..0000000
--- a/traces/st-x17-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x18-0.bin b/traces/st-x18-0.bin
deleted file mode 100644
index 2ed81f1..0000000
--- a/traces/st-x18-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x18-1.bin b/traces/st-x18-1.bin
deleted file mode 100644
index dd791c1..0000000
--- a/traces/st-x18-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x18-2.bin b/traces/st-x18-2.bin
deleted file mode 100644
index f90d9ab..0000000
--- a/traces/st-x18-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x18-3.bin b/traces/st-x18-3.bin
deleted file mode 100644
index 944156a..0000000
--- a/traces/st-x18-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x19-0.bin b/traces/st-x19-0.bin
deleted file mode 100644
index 1aeea29..0000000
--- a/traces/st-x19-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x19-1.bin b/traces/st-x19-1.bin
deleted file mode 100644
index 9e2129a..0000000
--- a/traces/st-x19-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x19-2.bin b/traces/st-x19-2.bin
deleted file mode 100644
index e9cd71b..0000000
--- a/traces/st-x19-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x19-3.bin b/traces/st-x19-3.bin
deleted file mode 100644
index 530523d..0000000
--- a/traces/st-x19-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x2-0.bin b/traces/st-x2-0.bin
deleted file mode 100644
index e24dcab..0000000
--- a/traces/st-x2-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x2-1.bin b/traces/st-x2-1.bin
deleted file mode 100644
index 4a66180..0000000
--- a/traces/st-x2-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x2-2.bin b/traces/st-x2-2.bin
deleted file mode 100644
index 76cde24..0000000
--- a/traces/st-x2-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x2-3.bin b/traces/st-x2-3.bin
deleted file mode 100644
index faa0b90..0000000
--- a/traces/st-x2-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x3-0.bin b/traces/st-x3-0.bin
deleted file mode 100644
index 60107c7..0000000
--- a/traces/st-x3-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x3-1.bin b/traces/st-x3-1.bin
deleted file mode 100644
index 7a5fe39..0000000
--- a/traces/st-x3-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x3-2.bin b/traces/st-x3-2.bin
deleted file mode 100644
index 1d40df6..0000000
--- a/traces/st-x3-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x3-3.bin b/traces/st-x3-3.bin
deleted file mode 100644
index afba2e1..0000000
--- a/traces/st-x3-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x4-0.bin b/traces/st-x4-0.bin
deleted file mode 100644
index 260bec7..0000000
--- a/traces/st-x4-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x4-1.bin b/traces/st-x4-1.bin
deleted file mode 100644
index 17669ae..0000000
--- a/traces/st-x4-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x4-2.bin b/traces/st-x4-2.bin
deleted file mode 100644
index a02713f..0000000
--- a/traces/st-x4-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x4-3.bin b/traces/st-x4-3.bin
deleted file mode 100644
index db5e880..0000000
--- a/traces/st-x4-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x5-0.bin b/traces/st-x5-0.bin
deleted file mode 100644
index 6fb2ac3..0000000
--- a/traces/st-x5-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x5-1.bin b/traces/st-x5-1.bin
deleted file mode 100644
index 6466f25..0000000
--- a/traces/st-x5-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x5-2.bin b/traces/st-x5-2.bin
deleted file mode 100644
index 93915e9..0000000
--- a/traces/st-x5-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x5-3.bin b/traces/st-x5-3.bin
deleted file mode 100644
index 69fb611..0000000
--- a/traces/st-x5-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x6-0.bin b/traces/st-x6-0.bin
deleted file mode 100644
index ed18dae..0000000
--- a/traces/st-x6-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x6-1.bin b/traces/st-x6-1.bin
deleted file mode 100644
index 4689df1..0000000
--- a/traces/st-x6-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x6-2.bin b/traces/st-x6-2.bin
deleted file mode 100644
index 0977d93..0000000
--- a/traces/st-x6-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x6-3.bin b/traces/st-x6-3.bin
deleted file mode 100644
index 3b2cdc9..0000000
--- a/traces/st-x6-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x7-0.bin b/traces/st-x7-0.bin
deleted file mode 100644
index 2d11122..0000000
--- a/traces/st-x7-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x7-1.bin b/traces/st-x7-1.bin
deleted file mode 100644
index 4e13060..0000000
--- a/traces/st-x7-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x7-2.bin b/traces/st-x7-2.bin
deleted file mode 100644
index 07768b8..0000000
--- a/traces/st-x7-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x7-3.bin b/traces/st-x7-3.bin
deleted file mode 100644
index b3e71da..0000000
--- a/traces/st-x7-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x9-0.bin b/traces/st-x9-0.bin
deleted file mode 100644
index be09f48..0000000
--- a/traces/st-x9-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x9-1.bin b/traces/st-x9-1.bin
deleted file mode 100644
index 19b14e8..0000000
--- a/traces/st-x9-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x9-2.bin b/traces/st-x9-2.bin
deleted file mode 100644
index dcbb59c..0000000
--- a/traces/st-x9-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-x9-3.bin b/traces/st-x9-3.bin
deleted file mode 100644
index 1aea9a2..0000000
--- a/traces/st-x9-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-xxx-0.bin b/traces/st-xxx-0.bin
deleted file mode 100644
index 1b661a5..0000000
--- a/traces/st-xxx-0.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-xxx-1.bin b/traces/st-xxx-1.bin
deleted file mode 100644
index d82d027..0000000
--- a/traces/st-xxx-1.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-xxx-2.bin b/traces/st-xxx-2.bin
deleted file mode 100644
index d3586e9..0000000
--- a/traces/st-xxx-2.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st-xxx-3.bin b/traces/st-xxx-3.bin
deleted file mode 100644
index 5d9168c..0000000
--- a/traces/st-xxx-3.bin
+++ /dev/null
Binary files differ
diff --git a/traces/st0.fg b/traces/st0.fg
deleted file mode 100644
index 4008086..0000000
--- a/traces/st0.fg
+++ /dev/null
Binary files differ
diff --git a/traces/st1.fg b/traces/st1.fg
deleted file mode 100644
index 5d5c5ae..0000000
--- a/traces/st1.fg
+++ /dev/null
Binary files differ
diff --git a/traces/stg20.bin b/traces/stg20.bin
deleted file mode 100644
index a12ca3e..0000000
--- a/traces/stg20.bin
+++ /dev/null
Binary files differ
diff --git a/traces/stg21.bin b/traces/stg21.bin
deleted file mode 100644
index b0ab240..0000000
--- a/traces/stg21.bin
+++ /dev/null
Binary files differ
diff --git a/traces/stg22.bin b/traces/stg22.bin
deleted file mode 100644
index 1d1a0a5..0000000
--- a/traces/stg22.bin
+++ /dev/null
Binary files differ
diff --git a/traces/stg23.bin b/traces/stg23.bin
deleted file mode 100644
index fed856f..0000000
--- a/traces/stg23.bin
+++ /dev/null
Binary files differ
diff --git a/traces/test.pdf b/traces/test.pdf
deleted file mode 100644
index e0c2850..0000000
--- a/traces/test.pdf
+++ /dev/null
Binary files differ
diff --git a/traces/x11.pdf b/traces/x11.pdf
deleted file mode 100644
index 6c909a9..0000000
--- a/traces/x11.pdf
+++ /dev/null
Binary files differ
diff --git a/traces/x12.pdf b/traces/x12.pdf
deleted file mode 100644
index 0d16db3..0000000
--- a/traces/x12.pdf
+++ /dev/null
Binary files differ
diff --git a/traces/x13.pdf b/traces/x13.pdf
deleted file mode 100644
index fb527ce..0000000
--- a/traces/x13.pdf
+++ /dev/null
Binary files differ
diff --git a/traces/x14.pdf b/traces/x14.pdf
deleted file mode 100644
index f22df22..0000000
--- a/traces/x14.pdf
+++ /dev/null
Binary files differ
diff --git a/traces/x15.pdf b/traces/x15.pdf
deleted file mode 100644
index a2da624..0000000
--- a/traces/x15.pdf
+++ /dev/null
Binary files differ
diff --git a/traces/x16.pdf b/traces/x16.pdf
deleted file mode 100644
index bc19a32..0000000
--- a/traces/x16.pdf
+++ /dev/null
Binary files differ
diff --git a/traces/x17.pdf b/traces/x17.pdf
deleted file mode 100644
index b74b90f..0000000
--- a/traces/x17.pdf
+++ /dev/null
Binary files differ
diff --git a/traces/x18.pdf b/traces/x18.pdf
deleted file mode 100644
index 6d8feb0..0000000
--- a/traces/x18.pdf
+++ /dev/null
Binary files differ
diff --git a/traces/x19.pdf b/traces/x19.pdf
deleted file mode 100644
index 60c0af0..0000000
--- a/traces/x19.pdf
+++ /dev/null
Binary files differ
diff --git a/visualizer.py b/visualizer.py
index 80c2af9..c15bf51 100755
--- a/visualizer.py
+++ b/visualizer.py
@@ -1,31 +1,11 @@
1#!/usr/bin/python 1#!/usr/bin/python
2
3"""Runs the visualizer."""
4
5import convert
6import reader
7import viz
8
9import gtk 2import gtk
3import viz
10 4
11path = 'sample_traces/' 5def visualizer(stream):
12 6 sched = viz.convert.convert_trace_to_schedule(stream)
13trace_list = [
14path + 'st-g6-0.bin',
15path + 'st-g6-1.bin',
16path + 'st-g6-2.bin',
17path + 'st-g6-3.bin'
18]
19
20if __name__ == '__main__':
21 stream = reader.trace_reader.trace_reader(trace_list)
22 stream = reader.sanitizer.sanitizer(stream)
23 stream = reader.gedf_test.gedf_test(stream)
24 sched = convert.convert_trace_to_schedule(stream)
25 sched.scan(10000000) 7 sched.scan(10000000)
26 renderer = viz.renderer.Renderer(sched) 8 renderer = viz.renderer.Renderer(sched)
27 renderer.prepare_task_graph(attrs=viz.format.GraphFormat(time_per_maj=10000000)) 9 renderer.prepare_task_graph(attrs=viz.format.GraphFormat(time_per_maj=10000000))
28
29 viz.viewer.MainWindow(renderer) 10 viz.viewer.MainWindow(renderer)
30 gtk.main() 11 gtk.main()
31
diff --git a/viz/__init__.py b/viz/__init__.py
index ef409f6..5f8d000 100644
--- a/viz/__init__.py
+++ b/viz/__init__.py
@@ -3,6 +3,7 @@ import renderer
3import format 3import format
4import gobject 4import gobject
5import gtk 5import gtk
6import convert
6 7
7gobject.signal_new('set-scroll-adjustments', viewer.GraphArea, gobject.SIGNAL_RUN_FIRST, 8gobject.signal_new('set-scroll-adjustments', viewer.GraphArea, gobject.SIGNAL_RUN_FIRST,
8 None, (gtk.Adjustment, gtk.Adjustment)) 9 None, (gtk.Adjustment, gtk.Adjustment))
diff --git a/convert.py b/viz/convert.py
index 1db4ad0..deb50c8 100644
--- a/convert.py
+++ b/viz/convert.py
@@ -1,6 +1,6 @@
1#!/usr/bin/env python 1#!/usr/bin/env python
2from viz.schedule import * 2from schedule import *
3from reader.trace_reader import * 3from trace_reader import *
4 4
5"""Class that interprets the raw trace data, outputting it 5"""Class that interprets the raw trace data, outputting it
6to a Python schedule object. 6to a Python schedule object.
diff --git a/reader/trace_reader.py b/viz/trace_reader.py
index a4ff964..a4ff964 100644
--- a/reader/trace_reader.py
+++ b/viz/trace_reader.py