aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/session.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2010-03-26 20:16:22 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2010-04-02 15:27:55 -0400
commit5f4d3f8816461300ce54505c9117bf85b3044aa0 (patch)
treeb69a6f22792480ab1ee02c67e5f8a650d66f208d /tools/perf/util/session.c
parent7e5e1b1404c30db5f6bc3f5203b6c21c1d244f99 (diff)
perf report: Add progress bars
For when we are processing the events and inserting the entries in the browser. Experimentation here: naming "ui_something" we may be treading into creating a TUI/GUI set of routines that can then be implemented in terms of multiple backends. Also the time it takes for adding things to the "browser" takes, visually (I guess I should do some profiling here ;-) ), more time than for processing the events... That means we probably need to create a custom hist_entry browser, so that we reuse the structures we have in place instead of duplicating them in newt. But progress was made and at least we can see something while long files are being loaded, that must be one of UI 101 bullet points :-) Cc: Frédéric Weisbecker <fweisbec@gmail.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/session.c')
-rw-r--r--tools/perf/util/session.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 76b4ac689df9..32765cdca058 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -397,6 +397,10 @@ int __perf_session__process_events(struct perf_session *self,
397 event_t *event; 397 event_t *event;
398 uint32_t size; 398 uint32_t size;
399 char *buf; 399 char *buf;
400 struct ui_progress *progress = ui_progress__new("Processing events...",
401 self->size);
402 if (progress == NULL)
403 return -1;
400 404
401 perf_event_ops__fill_defaults(ops); 405 perf_event_ops__fill_defaults(ops);
402 406
@@ -425,6 +429,7 @@ remap:
425 429
426more: 430more:
427 event = (event_t *)(buf + head); 431 event = (event_t *)(buf + head);
432 ui_progress__update(progress, offset);
428 433
429 if (self->header.needs_swap) 434 if (self->header.needs_swap)
430 perf_event_header__bswap(&event->header); 435 perf_event_header__bswap(&event->header);
@@ -475,6 +480,7 @@ more:
475done: 480done:
476 err = 0; 481 err = 0;
477out_err: 482out_err:
483 ui_progress__delete(progress);
478 return err; 484 return err;
479} 485}
480 486