perf annotate: Show progress of sample processing
Like 'perf report', it can take a while to process samples. Show a progress window to inform users how that it is not stuck. Reviewed-by: Ian Rogers <irogers@google.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Link: https://lore.kernel.org/r/20240411033256.2099646-3-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
eb83348863
commit
d9aedc12d3
1 changed files with 13 additions and 2 deletions
|
@ -37,6 +37,7 @@
|
|||
#include "util/map_symbol.h"
|
||||
#include "util/branch.h"
|
||||
#include "util/util.h"
|
||||
#include "ui/progress.h"
|
||||
|
||||
#include <dlfcn.h>
|
||||
#include <errno.h>
|
||||
|
@ -665,13 +666,23 @@ static int __cmd_annotate(struct perf_annotate *ann)
|
|||
evlist__for_each_entry(session->evlist, pos) {
|
||||
struct hists *hists = evsel__hists(pos);
|
||||
u32 nr_samples = hists->stats.nr_samples;
|
||||
struct ui_progress prog;
|
||||
|
||||
if (nr_samples > 0) {
|
||||
total_nr_samples += nr_samples;
|
||||
hists__collapse_resort(hists, NULL);
|
||||
|
||||
ui_progress__init(&prog, nr_samples,
|
||||
"Merging related events...");
|
||||
hists__collapse_resort(hists, &prog);
|
||||
ui_progress__finish();
|
||||
|
||||
/* Don't sort callchain */
|
||||
evsel__reset_sample_bit(pos, CALLCHAIN);
|
||||
evsel__output_resort(pos, NULL);
|
||||
|
||||
ui_progress__init(&prog, nr_samples,
|
||||
"Sorting events for output...");
|
||||
evsel__output_resort(pos, &prog);
|
||||
ui_progress__finish();
|
||||
|
||||
/*
|
||||
* An event group needs to display other events too.
|
||||
|
|
Loading…
Reference in a new issue