Skip to content

Commit

Permalink
perf thread_map: Create dummy constructor out of open coded equivalent
Browse files Browse the repository at this point in the history
Create a dummy thread_map, one that has just one entry and it is -1,
meaning 'all threads', as this ends up going down to perf_event_open().

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jean Pihet <jean.pihet@linaro.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@kernel.org>
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-8av26cz8uxmbnihl5mmrygp9@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
  • Loading branch information
Arnaldo Carvalho de Melo committed Oct 14, 2014
1 parent a635fc5 commit 641556c
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 8 deletions.
21 changes: 13 additions & 8 deletions tools/perf/util/thread_map.c
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,17 @@ static struct thread_map *thread_map__new_by_pid_str(const char *pid_str)
goto out;
}

struct thread_map *thread_map__new_dummy(void)
{
struct thread_map *threads = malloc(sizeof(*threads) + sizeof(pid_t));

if (threads != NULL) {
threads->map[0] = -1;
threads->nr = 1;
}
return threads;
}

static struct thread_map *thread_map__new_by_tid_str(const char *tid_str)
{
struct thread_map *threads = NULL, *nt;
Expand All @@ -224,14 +235,8 @@ static struct thread_map *thread_map__new_by_tid_str(const char *tid_str)
struct strlist *slist;

/* perf-stat expects threads to be generated even if tid not given */
if (!tid_str) {
threads = malloc(sizeof(*threads) + sizeof(pid_t));
if (threads != NULL) {
threads->map[0] = -1;
threads->nr = 1;
}
return threads;
}
if (!tid_str)
return thread_map__new_dummy();

slist = strlist__new(false, tid_str);
if (!slist)
Expand Down
1 change: 1 addition & 0 deletions tools/perf/util/thread_map.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ struct thread_map {
pid_t map[];
};

struct thread_map *thread_map__new_dummy(void);
struct thread_map *thread_map__new_by_pid(pid_t pid);
struct thread_map *thread_map__new_by_tid(pid_t tid);
struct thread_map *thread_map__new_by_uid(uid_t uid);
Expand Down

0 comments on commit 641556c

Please sign in to comment.