From 31eda2bbea3ea0322a5753dd5cc7beadf90c6a4e Mon Sep 17 00:00:00 2001 From: "Bjoern B. Brandenburg" Date: Thu, 7 May 2009 13:34:04 -0400 Subject: add rtss09 plotting --- plot.py | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/plot.py b/plot.py index 2190a6e..fb9ec42 100755 --- a/plot.py +++ b/plot.py @@ -52,11 +52,11 @@ def get_data_tmpfile(datafile): del d # removes temp file return None -def scenario_heading(conf): +def scenario_heading(conf, want_period=False): dist = 'unknown distribution' if 'dist' in conf: if conf['dist'] == 'uni': - dist = 'uniformly distributed ' + dist = 'util. uniformly ' if 'light' in conf: dist = dist + 'in [0.001, 0.1]' elif 'medium' in conf: @@ -64,13 +64,20 @@ def scenario_heading(conf): elif 'heavy' in conf: dist = dist + 'in [0.5, 0.9]' elif conf['dist'] == 'bimo': - dist = 'bimodially distributed ' + dist = 'util. bimodially ' if 'light' in conf: dist = dist + 'in [0.001, 0.5] (8/9) and [0.5, 0.9] (1/9)' elif 'medium' in conf: dist = dist + 'in [0.001, 0.5] (6/9) and [0.5, 0.9] (3/9)' elif 'heavy' in conf: dist = dist + 'in [0.001, 0.5] (4/9) and [0.5, 0.9] (5/9)' + if want_period: + if '33' in conf: + dist += '; period uniformly in [3, 33]' + elif '250' in conf: + dist += '; period uniformly in [50, 250]' + else: + dist += '; period uniformly in [10, 100]' return dist class SchedPlotter(defapp.App): @@ -167,6 +174,29 @@ class SchedPlotter(defapp.App): title = 'Interrupt accounting under G-EDF: utilization ' + scenario_heading(conf) self.plot(graphs, title, name, conf) + def plot_rtss09(self, tmpfile, name, conf): + title = scenario_heading(conf, want_period=True) + graphs = [ + (tmpfile, 1, 2, 'ideal (no overheads)'), + (tmpfile, 1, 3, 'baseline'), + (tmpfile, 1, 4, 'baseline/rp'), + (tmpfile, 1, 5, 'fine-grained heap'), + (tmpfile, 1, 6, 'fine-grained heap/rp'), + (tmpfile, 1, 7, 'two-level queue'), + (tmpfile, 1, 8, 'quantum-driven'), + (tmpfile, 1, 9, 'quantum-driven/rp'), + ] + staggered = [ + (tmpfile, 1, 10, 'staggered quantum-driven'), + (tmpfile, 1, 11, 'staggered quantum-driven/rp'), + ] + if 'hard' in conf: + graphs += staggered + if self.options.paper and self.options.format == 'pdf': + self.plot_paper(graphs, title, name, conf) + else: + self.plot(graphs, title, name, conf) + def plot_file(self, datafile): bname = basename(datafile) name, ext = splitext(bname) @@ -186,6 +216,8 @@ class SchedPlotter(defapp.App): self.plot_spec4(tmpfile.name, name, conf) elif 'irq' in conf: self.plot_irq(tmpfile.name, name, conf) + elif 'rtss09' in conf: + self.plot_rtss09(tmpfile.name, name, conf) else: self.err("Skipped '%s'; unkown experiment type." % bname) -- cgit v1.2.2