linux_dsm_epyc7002/tools/perf
Arnaldo Carvalho de Melo f62d3f0f45 perf event: No need to create a thread when handling PERF_RECORD_EXIT
When we were processing a PERF_RECORD_EXIT event we first used
machine__findnew_thread for both the thread exiting and for its parent,
only to use just the thread struct associated with the one exiting, and
to just delete it.

If it existed, i.e. not created at this very moment in
machine__findnew_thread, it will be moved to the machine->dead_threads
linked list, because we may have hist_entries pointing to it, but if it
was created just do be deleted, it will just sit there with no
references at all.

Use the new machine__find_thread() method so that if it is not there, we
don't create it.

As a bonus the parent thread will also not be created at this point.

Create process_fork() and process_exit() helpers to use this and make
the builtins use it instead of the generic process_task(), ditched by
this patch.

Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-z7n2y98ebjyrvmytaope4vdl@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2012-10-06 16:33:45 -03:00
..
arch perf tools: Support for DWARF CFI unwinding on post processing 2012-08-11 15:06:56 -03:00
bench perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
config perf tools: Check libaudit availability for perf-trace builtin 2012-09-27 10:56:40 -03:00
Documentation perf diff: Add -F option to display formula for computation 2012-10-05 14:13:36 -03:00
python perf python: Use attr.watermark in twatch.py 2012-01-30 18:38:23 -02:00
scripts perf scripts: Add event_analyzing_sample-record/report 2012-09-17 13:11:15 -03:00
ui perf diff: Display empty space for non paired samples 2012-10-05 14:15:19 -03:00
util perf event: No need to create a thread when handling PERF_RECORD_EXIT 2012-10-06 16:33:45 -03:00
.gitignore perf tools: Ignore compiled python binaries 2012-09-07 12:10:58 -03:00
bash_completion perf tools: Complete tracepoint event names 2012-10-04 12:44:52 -03:00
builtin-annotate.c perf event: No need to create a thread when handling PERF_RECORD_EXIT 2012-10-06 16:33:45 -03:00
builtin-bench.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
builtin-buildid-cache.c perf buildid-cache: Don't use globals where not needed to 2012-10-02 18:36:35 -03:00
builtin-buildid-list.c perf buildid-list: Don't use globals where not needed to 2012-10-02 18:36:36 -03:00
builtin-diff.c perf event: No need to create a thread when handling PERF_RECORD_EXIT 2012-10-06 16:33:45 -03:00
builtin-evlist.c perf evlist: Don't use globals where not needed to 2012-10-02 18:36:39 -03:00
builtin-help.c perf help: Don't use globals where not needed to 2012-10-02 18:36:31 -03:00
builtin-inject.c perf event: No need to create a thread when handling PERF_RECORD_EXIT 2012-10-06 16:33:45 -03:00
builtin-kmem.c perf kmem: Don't use globals where not needed to 2012-10-02 18:36:32 -03:00
builtin-kvm.c perf kvm: Move global variables into a perf_kvm struct 2012-10-03 11:10:17 -03:00
builtin-list.c perf tools: Use __maybe_used for unused variables 2012-09-11 12:19:15 -03:00
builtin-lock.c perf lock: Don't use globals where not needed to 2012-10-02 18:36:33 -03:00
builtin-probe.c perf probe: Don't use globals where not needed to 2012-10-02 18:36:37 -03:00
builtin-record.c perf record: Don't use globals where not needed to 2012-10-02 18:36:40 -03:00
builtin-report.c perf event: No need to create a thread when handling PERF_RECORD_EXIT 2012-10-06 16:33:45 -03:00
builtin-sched.c perf event: No need to create a thread when handling PERF_RECORD_EXIT 2012-10-06 16:33:45 -03:00
builtin-script.c perf event: No need to create a thread when handling PERF_RECORD_EXIT 2012-10-06 16:33:45 -03:00
builtin-stat.c perf stat: Don't use globals where not needed to 2012-10-02 18:36:29 -03:00
builtin-test.c perf tools: Have the page size value available for all tools 2012-10-06 16:33:14 -03:00
builtin-timechart.c perf timechart: Don't use globals where not needed to 2012-10-02 18:36:34 -03:00
builtin-top.c perf tools: Removing hists pair argument from output path 2012-10-04 13:29:45 -03:00
builtin-trace.c perf trace: Add support for tracing workload given by command line 2012-10-05 12:51:27 -03:00
builtin.h perf trace: New tool 2012-09-26 20:42:23 -03:00
command-list.txt perf trace: New tool 2012-09-26 20:42:23 -03:00
CREDITS perf_counter tools: Add CREDITS file for Git contributors 2009-06-24 19:54:29 +02:00
design.txt perf tools: Update ioctl documentation for PERF_IOC_FLAG_GROUP 2012-05-31 11:38:42 -03:00
Makefile perf machine: Introduce find_thread method 2012-10-06 16:33:22 -03:00
MANIFEST perf kvm: Events analysis tool 2012-09-21 12:51:22 -03:00
perf-archive.sh perf archive: Make 'f' the last parameter for tar 2012-09-17 13:10:42 -03:00
perf.c perf tools: Have the page size value available for all tools 2012-10-06 16:33:14 -03:00
perf.h perf tools: Support for DWARF mode callchain 2012-08-11 15:07:18 -03:00