diff options
Diffstat (limited to 'tools/perf/builtin-stat.c')
| -rw-r--r-- | tools/perf/builtin-stat.c | 18 | 
1 files changed, 13 insertions, 5 deletions
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index a9f06715e44..1d08c8084cc 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -61,6 +61,8 @@  #include <locale.h>  #define DEFAULT_SEPARATOR	" " +#define CNTR_NOT_SUPPORTED	"<not supported>" +#define CNTR_NOT_COUNTED	"<not counted>"  static struct perf_event_attr default_attrs[] = { @@ -448,6 +450,7 @@ static int run_perf_stat(int argc __used, const char **argv)  				if (verbose)  					ui__warning("%s event is not supported by the kernel.\n",  						    event_name(counter)); +				counter->supported = false;  				continue;  			} @@ -466,6 +469,7 @@ static int run_perf_stat(int argc __used, const char **argv)  			die("Not all events could be opened.\n");  			return -1;  		} +		counter->supported = true;  	}  	if (perf_evlist__set_filters(evsel_list)) { @@ -513,7 +517,10 @@ static void print_noise_pct(double total, double avg)  	if (avg)  		pct = 100.0*total/avg; -	fprintf(stderr, "  ( +-%6.2f%% )", pct); +	if (csv_output) +		fprintf(stderr, "%s%.2f%%", csv_sep, pct); +	else +		fprintf(stderr, "  ( +-%6.2f%% )", pct);  }  static void print_noise(struct perf_evsel *evsel, double avg) @@ -861,7 +868,7 @@ static void print_counter_aggr(struct perf_evsel *counter)  	if (scaled == -1) {  		fprintf(stderr, "%*s%s%*s",  			csv_output ? 0 : 18, -			"<not counted>", +			counter->supported ? CNTR_NOT_COUNTED : CNTR_NOT_SUPPORTED,  			csv_sep,  			csv_output ? 0 : -24,  			event_name(counter)); @@ -878,13 +885,13 @@ static void print_counter_aggr(struct perf_evsel *counter)  	else  		abs_printout(-1, counter, avg); +	print_noise(counter, avg); +  	if (csv_output) {  		fputc('\n', stderr);  		return;  	} -	print_noise(counter, avg); -  	if (scaled) {  		double avg_enabled, avg_running; @@ -914,7 +921,8 @@ static void print_counter(struct perf_evsel *counter)  				csv_output ? 0 : -4,  				evsel_list->cpus->map[cpu], csv_sep,  				csv_output ? 0 : 18, -				"<not counted>", csv_sep, +				counter->supported ? CNTR_NOT_COUNTED : CNTR_NOT_SUPPORTED, +				csv_sep,  				csv_output ? 0 : -24,  				event_name(counter));  |