forked from luck/tmp_suning_uos_patched
perf top/report: Fix infinite loop in the TUI for grouped events
For a while we need to have a dummy event for doing things like
receiving PERF_RECORD_COMM, PERF_RECORD_EXEC, etc for threads being
created and dying while we synthesize the pre-existing ones at tool
start.
This 'dummy' event is needed for keeping track of thread lifetime events
early in the session but are uninteresting otherwise, i.e. no need to
have it in a initial events menu for the non-grouped case, i.e. for:
# perf top -e cycles,instructions
or even for plain:
# perf top
When 'cycles' and that 'dummy' event are in place.
The code to remove that 'dummy' event ended up creating an endless loop
for the grouped case, i.e.:
# perf top -e '{cycles,instructions}'
Fix it.
Fixes: bee9ca1c8a
("perf report TUI: Remove needless 'dummy' event from menu")
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
33321a06c7
commit
d4ccbacb9c
|
@ -3629,8 +3629,8 @@ int perf_evlist__tui_browse_hists(struct evlist *evlist, const char *help,
|
|||
{
|
||||
int nr_entries = evlist->core.nr_entries;
|
||||
|
||||
single_entry:
|
||||
if (perf_evlist__single_entry(evlist)) {
|
||||
single_entry: {
|
||||
struct evsel *first = evlist__first(evlist);
|
||||
|
||||
return perf_evsel__hists_browse(first, nr_entries, help,
|
||||
|
@ -3638,6 +3638,7 @@ int perf_evlist__tui_browse_hists(struct evlist *evlist, const char *help,
|
|||
env, warn_lost_event,
|
||||
annotation_opts);
|
||||
}
|
||||
}
|
||||
|
||||
if (symbol_conf.event_group) {
|
||||
struct evsel *pos;
|
||||
|
|
Loading…
Reference in New Issue
Block a user