perf synthetic-events: Ignore dead threads during event synthesis
When it synthesize various task events, it scans the list of task first and then accesses later. There's a window threads can die between the two and proc entries may not be available. Instead of bailing out, we can ignore that thread and move on. Signed-off-by: Namhyung Kim <namhyung@kernel.org> Acked-by: Ian Rogers <irogers@google.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lore.kernel.org/lkml/20220701205458.985106-2-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
363afa3aef
commit
ff898552fb
|
@ -767,11 +767,12 @@ static int __event__synthesize_thread(union perf_event *comm_event,
|
|||
if (*end)
|
||||
continue;
|
||||
|
||||
rc = -1;
|
||||
/* some threads may exit just after scan, ignore it */
|
||||
if (perf_event__prepare_comm(comm_event, pid, _pid, machine,
|
||||
&tgid, &ppid, &kernel_thread) != 0)
|
||||
break;
|
||||
continue;
|
||||
|
||||
rc = -1;
|
||||
if (perf_event__synthesize_fork(tool, fork_event, _pid, tgid,
|
||||
ppid, process, machine) < 0)
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue