pybootchartgui: Simplify adding processes to the trace
authorPeter Kjellerstedt <peter.kjellerstedt@axis.com>
Tue, 21 Jan 2014 15:22:33 +0000 (16:22 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 23 Jan 2014 10:17:33 +0000 (10:17 +0000)
(From OE-Core rev: 5fa869007b5ba762bf5679197cf98b1d14a34a22)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
scripts/pybootchartgui/pybootchartgui/parsing.py

index 0600b51..1cb4466 100644 (file)
@@ -96,6 +96,16 @@ class Trace:
         return self.headers != None and self.disk_stats != None and \
                self.ps_stats != None and self.cpu_stats != None
 
+    def add_process(self, process, start, end):
+        self.processes[process] = [start, end]
+        if start not in self.start:
+            self.start[start] = []
+        if process not in self.start[start]:
+            self.start[start].append(process)
+        if end not in self.end:
+            self.end[end] = []
+        if process not in self.end[end]:
+            self.end[end].append(process)
 
     def compile(self, writer):
 
@@ -645,16 +655,7 @@ def _do_parse(writer, state, filename, file):
         elif line.startswith("Ended:"):
             end = int(float(line.split()[-1]))
     if start and end:
-        k = pn + ":" + task
-        state.processes[pn + ":" + task] = [start, end]
-        if start not in state.start:
-            state.start[start] = []
-        if k not in state.start[start]:
-            state.start[start].append(pn + ":" + task)
-        if end not in state.end:
-            state.end[end] = []
-        if k not in state.end[end]:
-            state.end[end].append(pn + ":" + task)
+        state.add_process(pn + ":" + task, start, end)
     t2 = clock()
     writer.info("  %s seconds" % str(t2-t1))
     return state
@@ -716,22 +717,10 @@ def split_res(res, n):
         while start < end:
             state = Trace(None, [], None)
             for i in range(start, end):
-                # Add these lines for reference
-                #state.processes[pn + ":" + task] = [start, end]
-                #state.start[start] = pn + ":" + task
-                #state.end[end] = pn + ":" + task
+                # Add this line for reference
+                #state.add_process(pn + ":" + task, start, end)
                 for p in res.start[s_list[i]]:
-                    s = s_list[i]
-                    e = res.processes[p][1]
-                    state.processes[p] = [s, e]
-                    if s not in state.start:
-                        state.start[s] = []
-                    if p not in state.start[s]:
-                        state.start[s].append(p)
-                    if e not in state.end:
-                        state.end[e] = []
-                    if p not in state.end[e]:
-                        state.end[e].append(p)
+                    state.add_process(p, s_list[i], res.processes[p][1])
             start = end
             end = end + frag_size
             if end > len(s_list):