diff options
Diffstat (limited to 'tools/perf/builtin-stat.c')
| -rw-r--r-- | tools/perf/builtin-stat.c | 10 | 
1 files changed, 6 insertions, 4 deletions
| diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index e8c85d5aec41..95db31cff6fd 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -45,6 +45,7 @@  #include "util/event.h"  #include "util/debug.h"  #include "util/header.h" +#include "util/cpumap.h"  #include <sys/prctl.h>  #include <math.h> @@ -151,7 +152,7 @@ static void create_perf_stat_counter(int counter, int pid)  		unsigned int cpu;  		for (cpu = 0; cpu < nr_cpus; cpu++) { -			fd[cpu][counter] = sys_perf_event_open(attr, -1, cpu, -1, 0); +			fd[cpu][counter] = sys_perf_event_open(attr, -1, cpumap[cpu], -1, 0);  			if (fd[cpu][counter] < 0 && verbose)  				fprintf(stderr, ERR_PERF_OPEN, counter,  					fd[cpu][counter], strerror(errno)); @@ -519,9 +520,10 @@ int cmd_stat(int argc, const char **argv, const char *prefix __used)  		nr_counters = ARRAY_SIZE(default_attrs);  	} -	nr_cpus = sysconf(_SC_NPROCESSORS_ONLN); -	assert(nr_cpus <= MAX_NR_CPUS); -	assert((int)nr_cpus >= 0); +	if (system_wide) +		nr_cpus = read_cpu_map(); +	else +		nr_cpus = 1;  	/*  	 * We dont want to block the signals - that would cause | 
