summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scripts/pybootchartgui/pybootchartgui/draw.py53
-rw-r--r--scripts/pybootchartgui/pybootchartgui/parsing.py29
2 files changed, 48 insertions, 34 deletions
diff --git a/scripts/pybootchartgui/pybootchartgui/draw.py b/scripts/pybootchartgui/pybootchartgui/draw.py
index 16830fa456..1b872de75e 100644
--- a/scripts/pybootchartgui/pybootchartgui/draw.py
+++ b/scripts/pybootchartgui/pybootchartgui/draw.py
@@ -287,32 +287,33 @@ def render(ctx, res):
287 287
288 offset = min(res.start.keys()) 288 offset = min(res.start.keys())
289 for s in sorted(res.start.keys()): 289 for s in sorted(res.start.keys()):
290 task = res.start[s].split(":")[1] 290 for val in sorted(res.start[s]):
291 #print res.start[s] 291 task = val.split(":")[1]
292 #print res.processes[res.start[s]][1] 292 #print val
293 #print s 293 #print res.processes[val][1]
294 x = (s - offset) * sec_w 294 #print s
295 w = ((res.processes[res.start[s]][1] - s) * sec_w) 295 x = (s - offset) * sec_w
296 296 w = ((res.processes[val][1] - s) * sec_w)
297 #print "proc at %s %s %s %s" % (x, y, w, proc_h) 297
298 col = None 298 #print "proc at %s %s %s %s" % (x, y, w, proc_h)
299 if task == "do_compile": 299 col = None
300 col = TASK_COLOR_COMPILE 300 if task == "do_compile":
301 elif task == "do_configure": 301 col = TASK_COLOR_COMPILE
302 col = TASK_COLOR_CONFIGURE 302 elif task == "do_configure":
303 elif task == "do_install": 303 col = TASK_COLOR_CONFIGURE
304 col = TASK_COLOR_INSTALL 304 elif task == "do_install":
305 elif task == "do_package": 305 col = TASK_COLOR_INSTALL
306 col = TASK_COLOR_PACKAGE 306 elif task == "do_package":
307 elif task == "do_populate_sysroot": 307 col = TASK_COLOR_PACKAGE
308 col = TASK_COLOR_SYSROOT 308 elif task == "do_populate_sysroot":
309 309 col = TASK_COLOR_SYSROOT
310 draw_rect(ctx, PROC_BORDER_COLOR, (x, y, w, proc_h)) 310
311 if col: 311 draw_rect(ctx, PROC_BORDER_COLOR, (x, y, w, proc_h))
312 draw_fill_rect(ctx, col, (x, y, w, proc_h)) 312 if col:
313 313 draw_fill_rect(ctx, col, (x, y, w, proc_h))
314 draw_label_in_box(ctx, PROC_TEXT_COLOR, res.start[s], x, y + proc_h - 4, w, proc_h) 314
315 y = y + proc_h 315 draw_label_in_box(ctx, PROC_TEXT_COLOR, val, x, y + proc_h - 4, w, proc_h)
316 y = y + proc_h
316 317
317 # draw process boxes 318 # draw process boxes
318 #draw_process_bar_chart(ctx, proc_tree, curr_y + bar_h, w, h) 319 #draw_process_bar_chart(ctx, proc_tree, curr_y + bar_h, w, h)
diff --git a/scripts/pybootchartgui/pybootchartgui/parsing.py b/scripts/pybootchartgui/pybootchartgui/parsing.py
index c64eba0a4d..a0f6e8e0eb 100644
--- a/scripts/pybootchartgui/pybootchartgui/parsing.py
+++ b/scripts/pybootchartgui/pybootchartgui/parsing.py
@@ -184,9 +184,16 @@ def _do_parse(state, filename, file):
184 elif line.startswith("Ended:"): 184 elif line.startswith("Ended:"):
185 end = int(float(line.split()[-1])) 185 end = int(float(line.split()[-1]))
186 if start and end and (end - start) > 8: 186 if start and end and (end - start) > 8:
187 k = pn + ":" + task
187 state.processes[pn + ":" + task] = [start, end] 188 state.processes[pn + ":" + task] = [start, end]
188 state.start[start] = pn + ":" + task 189 if start not in state.start:
189 state.end[end] = pn + ":" + task 190 state.start[start] = []
191 if k not in state.start[start]:
192 state.start[start].append(pn + ":" + task)
193 if end not in state.end:
194 state.end[end] = []
195 if k not in state.end[end]:
196 state.end[end].append(pn + ":" + task)
190 return state 197 return state
191 198
192def parse_file(state, filename): 199def parse_file(state, filename):
@@ -248,12 +255,18 @@ def split_res(res, n):
248 #state.processes[pn + ":" + task] = [start, end] 255 #state.processes[pn + ":" + task] = [start, end]
249 #state.start[start] = pn + ":" + task 256 #state.start[start] = pn + ":" + task
250 #state.end[end] = pn + ":" + task 257 #state.end[end] = pn + ":" + task
251 p = res.start[s_list[i]] 258 for p in res.start[s_list[i]]:
252 s = s_list[i] 259 s = s_list[i]
253 e = res.processes[p][1] 260 e = res.processes[p][1]
254 state.processes[p] = [s, e] 261 state.processes[p] = [s, e]
255 state.start[s] = p 262 if s not in state.start:
256 state.end[e] = p 263 state.start[s] = []
264 if p not in state.start[s]:
265 state.start[s].append(p)
266 if e not in state.end:
267 state.end[e] = []
268 if p not in state.end[e]:
269 state.end[e].append(p)
257 start = end 270 start = end
258 end = end + frag_size 271 end = end + frag_size
259 if end > len(s_list): 272 if end > len(s_list):