• Jin Yao's avatar
    perf tool: Improve bash command line auto-complete for multiple events with comma · 74cd5815
    Jin Yao authored
    perf has perf-completion.sh to define command line auto-completion in
    bash/zsh.
    
    For record/stat -e it works for single events, but isn't working when
    specifying multiple events with comma.
    
    It would be very useful if it could be fixed to make it easier by
    supporting multiple events, comma separated.
    
    With this patch, the result can be like this:
    
    1. Support the events returned from 'perf list --raw-dump'
    
    root@skl:/tmp# perf stat -e cpu/cache<TAB>
    cpu/cache-misses/      cpu/cache-references/
    
    root@skl:/tmp# perf stat -e cpu/cache-misses/,cpu/branch-<TAB>
    cpu/branch-instructions/  cpu/branch-misses/
    
    root@skl:/tmp# perf stat -e cpu/cache-misses/,cpu/branch-i<TAB>
    root@skl:/tmp# perf stat -e cpu/cache-misses/,cpu/branch-instructions/
    
    2. Support the events listed in /sys/bus/event_source/devices/cpu/events
    
    root@skl:/tmp# perf stat -e cycle<TAB>
    cycle_activity.cycles_l1d_miss  cycle_activity.stalls_l3_miss
    cycle_activity.cycles_l2_miss   cycle_activity.stalls_mem_any
    cycle_activity.cycles_l3_miss   cycle_activity.stalls_total
    cycle_activity.cycles_mem_any   cycles-ct
    cycle_activity.stalls_l1d_miss  cycles-t
    cycle_activity.stalls_l2_miss
    
    root@skl:/tmp# perf stat -e cycles-<TAB>
    cycles-ct  cycles-t
    
    root@skl:/tmp# perf stat -e cycles-t,cpu/c<TAB>
    cpu/cache-misses/      cpu/cpu-cycles/        cpu/cycles-t/
    cpu/cache-references/  cpu/cycles-ct/
    
    root@skl:/tmp# perf stat -e cycles-t,cpu/cache-<TAB>
    cpu/cache-misses/      cpu/cache-references/
    
    root@skl:/tmp# perf stat -e cycles-t,cpu/cache-misses/
    
    3. Support the uppercase event which is with prefix "cpu/"
    
    root@skl:/tmp# perf stat -e cpu/c<TAB>
    cpu/cache-misses/      cpu/cpu-cycles/        cpu/cycles-t/
    cpu/cache-references/  cpu/cycles-ct/
    
    root@skl:/tmp# perf stat -e cpu/cache-misses/,cpu/C<TAB>
    cpu/CACHE-MISSES/      cpu/CPU-CYCLES/        cpu/CYCLES-T/
    cpu/CACHE-REFERENCES/  cpu/CYCLES-CT/
    
    root@skl:/tmp# perf stat -e cpu/cache-misses/,cpu/CACHE-REFERENCES/
    
    Note that:
    
    a) This patch only supports bash.
    
    b) It doesn't support the cases like {},{} or {...,...}.
    Signed-off-by: default avatarJin Yao <yao.jin@linux.intel.com>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/1513848370-8098-1-git-send-email-yao.jin@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    74cd5815
perf-completion.sh 5.99 KB