Skip to content
  • Jiri Olsa's avatar
    perf stat: Introduce --per-thread option · 32b8af82
    Jiri Olsa authored
    
    
    Currently all the -p option PID arguments tasks values get aggregated
    and printed as single values.
    
    Adding --per-tasks option to print values per task.
    
      $ perf stat  -e cycles,instructions --per-thread -p 30190,30242
      ^C
       Performance counter stats for process id '30190,30242':
    
                   cat-30190                     0      cycles
                   yes-30242         3,842,525,421      cycles
                   cat-30190                     0      instructions
                   yes-30242        10,370,817,010      instructions
    
             1.143155657 seconds time elapsed
    
    Also works under interval mode:
    
      $ perf stat  -e cycles,instructions --per-thread -p 30190,30242 -I 1000
      #           time             comm-pid                  counts unit events
           1.000073435              cat-30190                89,058      cycles
           1.000073435              yes-30242         3,360,786,902      cycles                     (100.00%)
           1.000073435              cat-30190                14,066      instructions
           1.000073435              yes-30242         9,069,937,462      instructions
           2.000204830              cat-30190                     0      cycles
           2.000204830              yes-30242         3,351,667,626      cycles
           2.000204830              cat-30190                     0      instructions
           2.000204830              yes-30242         9,045,796,885      instructions
      ^C     2.771286639              cat-30190                     0      cycles
           2.771286639              yes-30242         2,593,884,166      cycles
           2.771286639              cat-30190                     0      instructions
           2.771286639              yes-30242         7,001,171,191      instructions
    
    It works only with -t and -p options, otherwise following error is
    printed:
    
      $ perf stat  -e cycles --per-thread  -I 1000 ls
      The --per-thread option is only available when monitoring via -p -t options.
          -p, --pid <pid>       stat events on existing process id
          -t, --tid <tid>       stat events on existing thread id
    
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lkml.kernel.org/r/1435310967-14570-23-git-send-email-jolsa@kernel.org
    
    
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    32b8af82