Commit d75e6097ef1f7669deb500fbbdf53cfe524f1b53
Committed by
Arnaldo Carvalho de Melo
1 parent
363b785f38
Exists in
master
and in
13 other branches
perf machine: Factor machine__find_thread to take tid argument
Forcing the code to always search thread by pid/tid pair. The PID value will be needed in future to determine the process thread leader for map groups sharing. Signed-off-by: Jiri Olsa <jolsa@redhat.com> Acked-by: Adrian Hunter <adrian.hunter@intel.com> Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com> Cc: David Ahern <dsahern@gmail.com> Cc: Don Zickus <dzickus@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1394805606-25883-3-git-send-email-jolsa@redhat.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Showing 3 changed files with 12 additions and 6 deletions Side-by-side Diff
tools/perf/tests/dwarf-unwind.c
... | ... | @@ -128,7 +128,7 @@ |
128 | 128 | if (verbose > 1) |
129 | 129 | machine__fprintf(machine, stderr); |
130 | 130 | |
131 | - thread = machine__find_thread(machine, getpid()); | |
131 | + thread = machine__find_thread(machine, getpid(), getpid()); | |
132 | 132 | if (!thread) { |
133 | 133 | pr_err("Could not get thread\n"); |
134 | 134 | goto out; |
tools/perf/util/machine.c
... | ... | @@ -327,9 +327,10 @@ |
327 | 327 | return __machine__findnew_thread(machine, pid, tid, true); |
328 | 328 | } |
329 | 329 | |
330 | -struct thread *machine__find_thread(struct machine *machine, pid_t tid) | |
330 | +struct thread *machine__find_thread(struct machine *machine, pid_t pid, | |
331 | + pid_t tid) | |
331 | 332 | { |
332 | - return __machine__findnew_thread(machine, 0, tid, false); | |
333 | + return __machine__findnew_thread(machine, pid, tid, false); | |
333 | 334 | } |
334 | 335 | |
335 | 336 | int machine__process_comm_event(struct machine *machine, union perf_event *event, |
... | ... | @@ -1114,7 +1115,9 @@ |
1114 | 1115 | int machine__process_fork_event(struct machine *machine, union perf_event *event, |
1115 | 1116 | struct perf_sample *sample) |
1116 | 1117 | { |
1117 | - struct thread *thread = machine__find_thread(machine, event->fork.tid); | |
1118 | + struct thread *thread = machine__find_thread(machine, | |
1119 | + event->fork.pid, | |
1120 | + event->fork.tid); | |
1118 | 1121 | struct thread *parent = machine__findnew_thread(machine, |
1119 | 1122 | event->fork.ppid, |
1120 | 1123 | event->fork.ptid); |
... | ... | @@ -1140,7 +1143,9 @@ |
1140 | 1143 | int machine__process_exit_event(struct machine *machine, union perf_event *event, |
1141 | 1144 | struct perf_sample *sample __maybe_unused) |
1142 | 1145 | { |
1143 | - struct thread *thread = machine__find_thread(machine, event->fork.tid); | |
1146 | + struct thread *thread = machine__find_thread(machine, | |
1147 | + event->fork.pid, | |
1148 | + event->fork.tid); | |
1144 | 1149 | |
1145 | 1150 | if (dump_trace) |
1146 | 1151 | perf_event__fprintf_task(event, stdout); |
tools/perf/util/machine.h
... | ... | @@ -41,7 +41,8 @@ |
41 | 41 | return machine->vmlinux_maps[type]; |
42 | 42 | } |
43 | 43 | |
44 | -struct thread *machine__find_thread(struct machine *machine, pid_t tid); | |
44 | +struct thread *machine__find_thread(struct machine *machine, pid_t pid, | |
45 | + pid_t tid); | |
45 | 46 | |
46 | 47 | int machine__process_comm_event(struct machine *machine, union perf_event *event, |
47 | 48 | struct perf_sample *sample); |