perf top/report: Fix infinite loop in the TUI for grouped events
authorArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 31 Aug 2020 19:17:00 +0000 (16:17 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 9 Sep 2020 17:14:20 +0000 (19:14 +0200)
commit8a435d33c26140ce5731241321b69ca40476ab41
treef196e2b063e25f9bfb666a2cd673c84786fe7f5f
parent692d0626557451c4b557397f20b7394b612d0289
perf top/report: Fix infinite loop in the TUI for grouped events

[ Upstream commit d4ccbacb9c217fefb4332a9af81b785690cf1053 ]

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: bee9ca1c8a237ca1 ("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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/perf/ui/browsers/hists.c