Em Mon, Apr 04, 2016 at 01:41:54PM -0700, Andi Kleen escreveu:
> From: Andi Kleen <[email protected]>
> 
> Add debug output of raw counter values per CPU when
> perf stat -v is specified, together with their cpu numbers.
> This is very useful to debug problems with per core counters,
> where we can normally only see aggregated values.

Can we do it only when per CPU is in place?

[acme@jouet linux]$ perf stat -v usleep 1
task-clock: 0: 1426718 1426718 1426718
task-clock: 1426718 1426718 1426718
context-switches: 0: 3 1426718 1426718
context-switches: 3 1426718 1426718
cpu-migrations: 0: 1 1426718 1426718
cpu-migrations: 1 1426718 1426718
page-faults: 0: 52 1426718 1426718
page-faults: 52 1426718 1426718
cycles: 0: 4338775 1437628 1437628
cycles: 4338775 1437628 1437628
instructions: 0: 754838 1437628 1437628
instructions: 754838 1437628 1437628
branches: 0: 146638 1437628 1437628
branches: 146638 1437628 1437628
branch-misses: 0: 7871 1437628 1437628
branch-misses: 7871 1437628 1437628

 Performance counter stats for 'usleep 1':

          1.426718      task-clock (msec)         #    0.370 CPUs utilized      
    
                 3      context-switches          #    0.002 M/sec              
    
                 1      cpu-migrations            #    0.701 K/sec              
    
                52      page-faults               #    0.036 M/sec              
    
         4,338,775      cycles                    #    3.041 GHz                
    
           754,838      instructions              #    0.17  insn per cycle     
    
           146,638      branches                  #  102.780 M/sec              
    
             7,871      branch-misses             #    5.37% of all branches    
    

       0.003859416 seconds time elapsed

[acme@jouet linux]$
 
> Signed-off-by: Andi Kleen <[email protected]>
> ---
>  tools/perf/builtin-stat.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
> index 6d8ce72cd8c1..0ee224b80056 100644
> --- a/tools/perf/builtin-stat.c
> +++ b/tools/perf/builtin-stat.c
> @@ -314,6 +314,14 @@ static int read_counter(struct perf_evsel *counter)
>                                       return -1;
>                               }
>                       }
> +
> +                     if (verbose) {
> +                             fprintf(stat_config.output,
> +                                     "%s: %d: %" PRIu64 " %" PRIu64 " %" 
> PRIu64 "\n",
> +                                             perf_evsel__name(counter),
> +                                             cpu,
> +                                             count->val, count->ena, 
> count->run);
> +                     }
>               }
>       }
>  
> -- 
> 2.5.5

Reply via email to