diff options
Diffstat (limited to 'tools/perf/util/evlist.c')
| -rw-r--r-- | tools/perf/util/evlist.c | 16 | 
1 files changed, 10 insertions, 6 deletions
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c index 1986d8051bd..4ac5f5ae4ce 100644 --- a/tools/perf/util/evlist.c +++ b/tools/perf/util/evlist.c @@ -11,6 +11,7 @@  #include <poll.h>  #include "cpumap.h"  #include "thread_map.h" +#include "target.h"  #include "evlist.h"  #include "evsel.h"  #include <unistd.h> @@ -599,18 +600,21 @@ int perf_evlist__mmap(struct perf_evlist *evlist, unsigned int pages,  	return perf_evlist__mmap_per_cpu(evlist, prot, mask);  } -int perf_evlist__create_maps(struct perf_evlist *evlist, const char *target_pid, -			     const char *target_tid, uid_t uid, const char *cpu_list) +int perf_evlist__create_maps(struct perf_evlist *evlist, +			     struct perf_target *target)  { -	evlist->threads = thread_map__new_str(target_pid, target_tid, uid); +	evlist->threads = thread_map__new_str(target->pid, target->tid, +					      target->uid);  	if (evlist->threads == NULL)  		return -1; -	if (uid != UINT_MAX || (cpu_list == NULL && target_tid)) +	if (perf_target__has_task(target)) +		evlist->cpus = cpu_map__dummy_new(); +	else if (!perf_target__has_cpu(target) && !target->uses_mmap)  		evlist->cpus = cpu_map__dummy_new();  	else -		evlist->cpus = cpu_map__new(cpu_list); +		evlist->cpus = cpu_map__new(target->cpu_list);  	if (evlist->cpus == NULL)  		goto out_delete_threads; @@ -827,7 +831,7 @@ int perf_evlist__prepare_workload(struct perf_evlist *evlist,  		exit(-1);  	} -	if (!opts->system_wide && !opts->target_tid && !opts->target_pid) +	if (perf_target__none(&opts->target))  		evlist->threads->map[0] = evlist->workload.pid;  	close(child_ready_pipe[1]);  |