diff options
Diffstat (limited to 'tools/perf/util/record.c')
| -rw-r--r-- | tools/perf/util/record.c | 13 | 
1 files changed, 8 insertions, 5 deletions
diff --git a/tools/perf/util/record.c b/tools/perf/util/record.c index bff669b615ee..007a64681416 100644 --- a/tools/perf/util/record.c +++ b/tools/perf/util/record.c @@ -106,7 +106,7 @@ void evlist__config(struct evlist *evlist, struct record_opts *opts, struct call  	if (opts->group)  		evlist__set_leader(evlist); -	if (evlist->core.cpus->map[0] < 0) +	if (perf_cpu_map__cpu(evlist->core.cpus, 0).cpu < 0)  		opts->no_inherit = true;  	use_comm_exec = perf_can_comm_exec(); @@ -229,7 +229,8 @@ bool evlist__can_select_event(struct evlist *evlist, const char *str)  {  	struct evlist *temp_evlist;  	struct evsel *evsel; -	int err, fd, cpu; +	int err, fd; +	struct perf_cpu cpu = { .cpu = 0 };  	bool ret = false;  	pid_t pid = -1; @@ -246,14 +247,16 @@ bool evlist__can_select_event(struct evlist *evlist, const char *str)  	if (!evlist || perf_cpu_map__empty(evlist->core.cpus)) {  		struct perf_cpu_map *cpus = perf_cpu_map__new(NULL); -		cpu =  cpus ? cpus->map[0] : 0; +		if (cpus) +			cpu =  perf_cpu_map__cpu(cpus, 0); +  		perf_cpu_map__put(cpus);  	} else { -		cpu = evlist->core.cpus->map[0]; +		cpu = perf_cpu_map__cpu(evlist->core.cpus, 0);  	}  	while (1) { -		fd = sys_perf_event_open(&evsel->core.attr, pid, cpu, -1, +		fd = sys_perf_event_open(&evsel->core.attr, pid, cpu.cpu, -1,  					 perf_event_open_cloexec_flag());  		if (fd < 0) {  			if (pid == -1 && errno == EACCES) {  |