Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Jiri Olsa and committed by
Arnaldo Carvalho de Melo
d75e6097 363b785f

+12 -6
+1 -1
tools/perf/tests/dwarf-unwind.c
··· 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;
+9 -4
tools/perf/util/machine.c
··· 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, ··· 1115 1114 int machine__process_fork_event(struct machine *machine, union perf_event *event, 1116 1115 struct perf_sample *sample) 1117 1116 { 1118 - struct thread *thread = machine__find_thread(machine, event->fork.tid); 1117 + struct thread *thread = machine__find_thread(machine, 1118 + event->fork.pid, 1119 + event->fork.tid); 1119 1120 struct thread *parent = machine__findnew_thread(machine, 1120 1121 event->fork.ppid, 1121 1122 event->fork.ptid); ··· 1143 1140 int machine__process_exit_event(struct machine *machine, union perf_event *event, 1144 1141 struct perf_sample *sample __maybe_unused) 1145 1142 { 1146 - struct thread *thread = machine__find_thread(machine, event->fork.tid); 1143 + struct thread *thread = machine__find_thread(machine, 1144 + event->fork.pid, 1145 + event->fork.tid); 1147 1146 1148 1147 if (dump_trace) 1149 1148 perf_event__fprintf_task(event, stdout);
+2 -1
tools/perf/util/machine.h
··· 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);