summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMac Mollison <mollison@cs.unc.edu>2010-03-26 13:51:39 -0400
committerMac Mollison <mollison@cs.unc.edu>2010-03-26 13:51:39 -0400
commit58d168e52c3de9f3a53d0aea802be5cab492ade6 (patch)
tree4c4656a6b876f4db0b850ee70273a4c0aa4125b7
parenta7bf26bd5597661b51c42e34ad2fad4c315b8aed (diff)
Add inversion IDs and print them
Makes it easier to find inversion records in output
-rw-r--r--unit_trace/gedf_test.py6
-rw-r--r--unit_trace/stdout_printer.py4
2 files changed, 9 insertions, 1 deletions
diff --git a/unit_trace/gedf_test.py b/unit_trace/gedf_test.py
index 41bab96..3f4e150 100644
--- a/unit_trace/gedf_test.py
+++ b/unit_trace/gedf_test.py
@@ -88,20 +88,26 @@ class Job(object):
88 self.is_complete = False 88 self.is_complete = False
89 self.inversion_start = None 89 self.inversion_start = None
90 self.inversion_end = None 90 self.inversion_end = None
91 self.inversion_start_id = None
91 def __str__(self): 92 def __str__(self):
92 return "(%d.%d:%d)" % (self.pid,self.job,self.deadline) 93 return "(%d.%d:%d)" % (self.pid,self.job,self.deadline)
93 94
94# G-EDF errors: the start or end of an inversion 95# G-EDF errors: the start or end of an inversion
95class Error(object): 96class Error(object):
97 id = 0
96 def __init__(self, job, eligible, on_cpu): 98 def __init__(self, job, eligible, on_cpu):
99 Error.id += 1
100 self.id = Error.id
97 self.job = copy.copy(job) 101 self.job = copy.copy(job)
98 self.eligible = copy.copy(eligible) 102 self.eligible = copy.copy(eligible)
99 self.on_cpu = copy.copy(on_cpu) 103 self.on_cpu = copy.copy(on_cpu)
100 self.record_type = 'error' 104 self.record_type = 'error'
101 if job.inversion_end is None: 105 if job.inversion_end is None:
102 self.type_name = 'inversion_start' 106 self.type_name = 'inversion_start'
107 job.inversion_start_id = self.id
103 else: 108 else:
104 self.type_name = 'inversion_end' 109 self.type_name = 'inversion_end'
110 self.inversion_start_id = job.inversion_start_id
105 111
106# Returns the position of a Job in a list, or None 112# Returns the position of a Job in a list, or None
107def _find_job(record,list): 113def _find_job(record,list):
diff --git a/unit_trace/stdout_printer.py b/unit_trace/stdout_printer.py
index d242bb6..4fea95a 100644
--- a/unit_trace/stdout_printer.py
+++ b/unit_trace/stdout_printer.py
@@ -27,12 +27,13 @@ def stdout_printer(stream):
27############################################################################### 27###############################################################################
28 28
29def _print_event(record): 29def _print_event(record):
30 print "ID: %d" % (record.id) 30 print "Event ID: %d" % (record.id)
31 print "Job: %d.%d" % (record.pid,record.job) 31 print "Job: %d.%d" % (record.pid,record.job)
32 print "Type: %s" % (record.type_name) 32 print "Type: %s" % (record.type_name)
33 print "Time: %d" % (record.when) 33 print "Time: %d" % (record.when)
34 34
35def _print_inversion_start(record): 35def _print_inversion_start(record):
36 print "Inversion Record IDs: (%d, U)" % (record.id)
36 print "Type: %s" % ("Inversion start") 37 print "Type: %s" % ("Inversion start")
37 print "Time: %d" % (record.job.inversion_start) 38 print "Time: %d" % (record.job.inversion_start)
38 print "Job: %d.%d" % (record.job.pid,record.job.job) 39 print "Job: %d.%d" % (record.job.pid,record.job.job)
@@ -47,6 +48,7 @@ def _print_inversion_start(record):
47 print #newline 48 print #newline
48 49
49def _print_inversion_end(record): 50def _print_inversion_end(record):
51 print "Inversion record IDs: (%d, %d)" % (record.inversion_start_id,record.id)
50 print "Type: %s" % ("Inversion end") 52 print "Type: %s" % ("Inversion end")
51 print "Time: %d" % (record.job.inversion_end) 53 print "Time: %d" % (record.job.inversion_end)
52 print "Duration: %d" % ( 54 print "Duration: %d" % (