* [PATCH] perf, tools: Handle completion of upper case events
@ 2016-10-05 22:19 Andi Kleen
2016-10-05 22:46 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 2+ messages in thread
From: Andi Kleen @ 2016-10-05 22:19 UTC (permalink / raw)
To: acme; +Cc: linux-kernel, jolsa, Andi Kleen
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.
v2: Use locale aware check for upper case
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..3cb5a800b646 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
+ [[:upper:]]*) 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
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] perf, tools: Handle completion of upper case events
2016-10-05 22:19 [PATCH] perf, tools: Handle completion of upper case events Andi Kleen
@ 2016-10-05 22:46 ` Arnaldo Carvalho de Melo
0 siblings, 0 replies; 2+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-10-05 22:46 UTC (permalink / raw)
To: Andi Kleen; +Cc: linux-kernel, jolsa, Sukadev Bhattiprolu, Andi Kleen
Em Wed, Oct 05, 2016 at 03:19:48PM -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.
>
> v2: Use locale aware check for upper case
> Signed-off-by: Andi Kleen <ak@linux.intel.com>
Ok, this makes it work, but then:
[root@jouet ~]# perf stat -e CPU-<TAB>
CPU-CLOCK CPU-CYCLES CPU-MIGRATIONS
[root@jouet ~]# perf stat -e CPU-CLOCK usleep 1
event syntax error: 'CPU-CLOCK'
\___ parser error
Run 'perf list' for a list of valid events
Usage: perf stat [<options>] [<command>]
-e, --event <event> event selector. use 'perf list' to list available events
[root@jouet ~]#
It now allows for non-JSON events to be tab completed only to then to
fail when passing it to perf.
We need to uppercase autocomplete only JSON events, that then gets
accepted by perf's event parser, i.e. you need something like:
[[:upper:]]*) evts=$($cmd list --raw-dump JSON | tr a-z A-Z) ;;
Just like we have for other event types, for instance, for
PERF_TYPE_HARDWARE:
[acme@jouet linux]$ perf list --raw hw
branch-instructions branch-misses bus-cycles cache-misses cache-references cpu-cycles instructions ref-cycles
or software:
[acme@jouet linux]$ perf list --raw sw
alignment-faults bpf-output context-switches cpu-clock cpu-migrations dummy emulation-faults major-faults minor-faults page-faults task-clock
[acme@jouet linux]$
That would be a nice fit as all events so far are lowercase, just these vendor
names are upper case.
- Arnaldo
> ---
> 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..3cb5a800b646 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
> + [[:upper:]]*) 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
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-10-05 22:46 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-05 22:19 [PATCH] perf, tools: Handle completion of upper case events Andi Kleen
2016-10-05 22:46 ` Arnaldo Carvalho de Melo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).