• Jiri Olsa's avatar
    perf stat: Use group read for event groups · 82bf311e
    Jiri Olsa authored
    Make perf stat use  group read if there  are groups defined. The group
    read will get the values for all member of groups within a single
    syscall instead of calling read syscall for every event.
    
    We can see considerable less amount of kernel cycles spent on single
    group read, than reading each event separately, like for following perf
    stat command:
    
      # perf stat -e {cycles,instructions} -I 10 -a sleep 1
    
    Monitored with "perf stat -r 5 -e '{cycles:u,cycles:k}'"
    
    Before:
    
            24,325,676      cycles:u
           297,040,775      cycles:k
    
           1.038554134 seconds time elapsed
    
    After:
            25,034,418      cycles:u
           158,256,395      cycles:k
    
           1.036864497 seconds time elapsed
    
    The perf_evsel__open fallback changes contributed by Andi Kleen.
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/20170726120206.9099-4-jolsa@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    82bf311e
evsel.c 67.9 KB