diff options
author | Ingo Molnar <mingo@kernel.org> | 2015-03-03 01:17:53 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2015-03-03 01:17:53 -0500 |
commit | 94ac003b665fc04f13a7ab3b2be896b9b9503451 (patch) | |
tree | 1fdaaf514ed20dfd1f3657693a55ab1547f1a656 /tools/perf/util/thread.c | |
parent | 788b94ba6c223d4ce955218d59075cd1edb92692 (diff) | |
parent | ae536acfacb65a4a9858c32b12361e09f84f4157 (diff) |
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
User visible changes:
- Warn if given uprobe event accesses memory on older kernel (Masami Hiramatsu)
- 'perf record' Documentation fixes (Namhyung Kim)
- Report unsupported events properly in 'perf stat' (Suzuki K. Poulose)
Infrastructure changes:
- Avoid FORK after COMM when synthesizing records for pre-existing threads (Arnaldo Carvalho de Melo)
- Reference count struct thread (Arnaldo Carvalho de Melo)
- Don't keep the session around in 'perf sched', thread refcounting removes that need (Arnaldo Carvalho de Melo)
- Initialize cpu set in pthread_attr_setaffinity_np() feature test (Adrian Hunter)
- Only include tsc file for x86 (David Ahern)
- Compare JOBS to 0 after grep (David Ahern)
- Improve feature detection messages (Ingo Molnar)
- Revert "perf: Remove the extra validity check on nr_pages" (Kan Liang)
- Remove bias offset to find probe point by address (Masami Hiramatsu)
- Fix build error on ARCH=i386/x86_64/sparc64 (Namhyung Kim)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/perf/util/thread.c')
-rw-r--r-- | tools/perf/util/thread.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tools/perf/util/thread.c b/tools/perf/util/thread.c index 9ebc8b1f9be5..a5dbba95107f 100644 --- a/tools/perf/util/thread.c +++ b/tools/perf/util/thread.c | |||
@@ -82,6 +82,20 @@ void thread__delete(struct thread *thread) | |||
82 | free(thread); | 82 | free(thread); |
83 | } | 83 | } |
84 | 84 | ||
85 | struct thread *thread__get(struct thread *thread) | ||
86 | { | ||
87 | ++thread->refcnt; | ||
88 | return thread; | ||
89 | } | ||
90 | |||
91 | void thread__put(struct thread *thread) | ||
92 | { | ||
93 | if (thread && --thread->refcnt == 0) { | ||
94 | list_del_init(&thread->node); | ||
95 | thread__delete(thread); | ||
96 | } | ||
97 | } | ||
98 | |||
85 | struct comm *thread__comm(const struct thread *thread) | 99 | struct comm *thread__comm(const struct thread *thread) |
86 | { | 100 | { |
87 | if (list_empty(&thread->comm_list)) | 101 | if (list_empty(&thread->comm_list)) |