Messages in this thread |  | | Date | Wed, 5 Oct 2016 18:50:59 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH 2/3] perf, tools: Handle completion of upper case events |
| |
Em Wed, Oct 05, 2016 at 12:47:11PM -0700, Andi Kleen escreveu: > From: Andi Kleen <ak@linux.intel.com> > > Vendor events are often specified in upper case. perf list outputs them > in lower case. Handle this case in perf-completion.sh so that > completion on the upper case events still works.
Humm, I just tried without your patch:
[root@jouet ~]# . ~acme/git/linux/tools/perf/perf-completion.sh [root@jouet ~]# perf stat -e cpu_clk_<TAB> cpu_clk_thread_unhalted.one_thread_active cpu_clk_unhalted.ref_tsc cpu_clk_unhalted.thread_any cpu_clk_thread_unhalted.ref_xclk cpu_clk_unhalted.ref_xclk cpu_clk_unhalted.thread_p cpu_clk_thread_unhalted.ref_xclk_any cpu_clk_unhalted.ref_xclk_any cpu_clk_unhalted.thread_p_any cpu_clk_unhalted.one_thread_active cpu_clk_unhalted.thread [root@jouet ~]# perf stat -e cpu_clk_
And then with it:
[root@jouet ~]# perf stat -e cpu<TAB>
And I get just beeps for the common case, i.e. lowercase, then if I try with uppercase it works:
[root@jouet ~]# perf stat -e CPU_CLK_ CPU_CLK_THREAD_UNHALTED.ONE_THREAD_ACTIVE CPU_CLK_UNHALTED.REF_TSC CPU_CLK_UNHALTED.THREAD_ANY CPU_CLK_THREAD_UNHALTED.REF_XCLK CPU_CLK_UNHALTED.REF_XCLK CPU_CLK_UNHALTED.THREAD_P CPU_CLK_THREAD_UNHALTED.REF_XCLK_ANY CPU_CLK_UNHALTED.REF_XCLK_ANY CPU_CLK_UNHALTED.THREAD_P_ANY CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE CPU_CLK_UNHALTED.THREAD [root@jouet ~]#
[root@jouet ~]# bash --version GNU bash, version 4.3.42(1)-release (x86_64-redhat-linux-gnu) Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. [root@jouet ~]#
> Signed-off-by: Andi Kleen <ak@linux.intel.com> > --- > tools/perf/perf-completion.sh | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/tools/perf/perf-completion.sh b/tools/perf/perf-completion.sh > index 3ba80b2359cc..48e7a01b5c91 100644 > --- a/tools/perf/perf-completion.sh > +++ b/tools/perf/perf-completion.sh > @@ -161,7 +161,11 @@ __perf_main () > # List possible events for -e option > elif [[ $prev == @("-e"|"--event") && > $prev_skip_opts == @(record|stat|top) ]]; then > - evts=$($cmd list --raw-dump) > + # handle upper case events > + case "$cur" in > + [A-Z]*) evts=$($cmd list --raw-dump | tr a-z A-Z) ;; > + *) evts=$($cmd list --raw-dump) ;; > + esac > __perfcomp_colon "$evts" "$cur" > else > # List subcommands for perf commands > -- > 2.5.5
|  |