diff options
-rw-r--r-- | scripts/pybootchartgui/pybootchartgui/draw.py | 53 | ||||
-rw-r--r-- | scripts/pybootchartgui/pybootchartgui/parsing.py | 29 |
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 | ||
192 | def parse_file(state, filename): | 199 | def 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): |