summaryrefslogtreecommitdiffstats
path: root/tools/perf/util/thread_map.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2015-06-26 10:38:11 +0200
committerIngo Molnar <mingo@kernel.org>2015-06-26 10:38:11 +0200
commit6eedf416429a32e0216f61b8b690d25577b2b91e (patch)
treecdd0474142283a269c2e05e31128d382418fab28 /tools/perf/util/thread_map.h
parentMerge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kerne... (diff)
parentperf tools: Make perf_evsel__(nr_)cpus generic (diff)
downloadlinux-6eedf416429a32e0216f61b8b690d25577b2b91e.tar.xz
linux-6eedf416429a32e0216f61b8b690d25577b2b91e.zip
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
Pull perf/core improvements and refactorings from Arnaldo Carvalho de Melo: Infrastructure changes: - Reference count the cpu_map and thread_map classes. (Jiri Olsa) - Set evsel->{cpus,threads} from the evlist, if not set, allowing the generalization of some 'perf stat' functions that previously were accessing private static evlist variable. (Jiri Olsa) - Delete an unnecessary check before the calling free_event_desc() (Markus Elfring) 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_map.h')
-rw-r--r--tools/perf/util/thread_map.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/tools/perf/util/thread_map.h b/tools/perf/util/thread_map.h
index b9f40679f589..6b0cd2dc006b 100644
--- a/tools/perf/util/thread_map.h
+++ b/tools/perf/util/thread_map.h
@@ -3,12 +3,14 @@
#include <sys/types.h>
#include <stdio.h>
+#include <linux/atomic.h>
struct thread_map_data {
pid_t pid;
};
struct thread_map {
+ atomic_t refcnt;
int nr;
struct thread_map_data map[];
};
@@ -19,11 +21,12 @@ struct thread_map *thread_map__new_by_tid(pid_t tid);
struct thread_map *thread_map__new_by_uid(uid_t uid);
struct thread_map *thread_map__new(pid_t pid, pid_t tid, uid_t uid);
+struct thread_map *thread_map__get(struct thread_map *map);
+void thread_map__put(struct thread_map *map);
+
struct thread_map *thread_map__new_str(const char *pid,
const char *tid, uid_t uid);
-void thread_map__delete(struct thread_map *threads);
-
size_t thread_map__fprintf(struct thread_map *threads, FILE *fp);
static inline int thread_map__nr(struct thread_map *threads)