mirror of https://gitee.com/openkylin/linux.git
perf thread_map: Create dummy constructor out of open coded equivalent
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>
This commit is contained in:
parent
a635fc511e
commit
641556c98c
|
@ -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;
|
||||
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue