aboutsummaryrefslogtreecommitdiffstats
path: root/parse/sched.py
diff options
context:
space:
mode:
Diffstat (limited to 'parse/sched.py')
-rw-r--r--parse/sched.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/parse/sched.py b/parse/sched.py
index 13c7ca2..a38c61b 100644
--- a/parse/sched.py
+++ b/parse/sched.py
@@ -26,10 +26,13 @@ class TimeTracker:
26 self.begin = 0 26 self.begin = 0
27 self.job = 0 27 self.job = 0
28 28
29 def start_time(self, record): 29 def start_time(self, record, time = None):
30 '''Start duration of time.''' 30 '''Start duration of time.'''
31 self.begin = record.when 31 if not time:
32 self.job = record.job 32 self.begin = record.when
33 else:
34 self.begin = time
35 self.job = record.job
33 36
34# Data stored for each task 37# Data stored for each task
35TaskParams = namedtuple('TaskParams', ['wcet', 'period', 'cpu']) 38TaskParams = namedtuple('TaskParams', ['wcet', 'period', 'cpu'])
@@ -132,7 +135,8 @@ def process_completion(task_dict, record):
132def process_release(task_dict, record): 135def process_release(task_dict, record):
133 data = task_dict[record.pid] 136 data = task_dict[record.pid]
134 data.jobs += 1 137 data.jobs += 1
135 data.misses.start_time(record) 138 if data.params:
139 data.misses.start_time(record, record.when + data.params.period)
136 140
137def process_param(task_dict, record): 141def process_param(task_dict, record):
138 params = TaskParams(record.wcet, record.period, record.partition) 142 params = TaskParams(record.wcet, record.period, record.partition)
@@ -147,7 +151,7 @@ def process_resume(task_dict, record):
147register_record('ResumeRecord', 9, process_resume, 'Q8x', ['when']) 151register_record('ResumeRecord', 9, process_resume, 'Q8x', ['when'])
148register_record('BlockRecord', 8, process_block, 'Q8x', ['when']) 152register_record('BlockRecord', 8, process_block, 'Q8x', ['when'])
149register_record('CompletionRecord', 7, process_completion, 'Q8x', ['when']) 153register_record('CompletionRecord', 7, process_completion, 'Q8x', ['when'])
150register_record('ReleaseRecord', 3, process_release, 'QQ', ['release', 'when']) 154register_record('ReleaseRecord', 3, process_release, 'QQ', ['when', 'release'])
151register_record('ParamRecord', 2, process_param, 'IIIcc2x', 155register_record('ParamRecord', 2, process_param, 'IIIcc2x',
152 ['wcet','period','phase','partition', 'task_class']) 156 ['wcet','period','phase','partition', 'task_class'])
153 157
@@ -203,4 +207,3 @@ def extract_sched_data(result, data_dir, work_dir):
203 if not data or not sum(data): 207 if not data or not sum(data):
204 continue 208 continue
205 result[name] = Measurement(str(name)).from_array(data) 209 result[name] = Measurement(str(name)).from_array(data)
206