Re: [PATCH 2/2] perf tools: Support for events bash completion

From: Frederic Weisbecker
Date: Tue Aug 07 2012 - 11:50:36 EST


On Tue, Aug 07, 2012 at 08:48:04AM -0600, David Ahern wrote:
> On 8/7/12 7:19 AM, Frederic Weisbecker wrote:
> >Add basic bash completion for the -e option in record, top
> >and stat subcommands. Only hardware, software and tracepoint
> >events are supported.
> >
> >Breakpoints, raw events and events grouping completion
> >need more thinking.
> >
> >Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> >Cc: David Ahern <dsahern@xxxxxxxxx>
> >Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> >Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> >Cc: Namhyung Kim <namhyung@xxxxxxxxx>
> >Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
> >Cc: Stephane Eranian <eranian@xxxxxxxxxx>
> >---
> > tools/perf/bash_completion | 6 +++-
> > tools/perf/builtin-list.c | 14 ++++---
> > tools/perf/util/parse-events.c | 70 +++++++++++++++++++++++++---------------
> > tools/perf/util/parse-events.h | 7 ++--
> > 4 files changed, 61 insertions(+), 36 deletions(-)
> >
> >diff --git a/tools/perf/bash_completion b/tools/perf/bash_completion
> >index 3547703..25f4d99 100644
> >--- a/tools/perf/bash_completion
> >+++ b/tools/perf/bash_completion
> >@@ -6,12 +6,16 @@ _perf()
> > local cur
> >
> > COMPREPLY=()
> >- _get_comp_words_by_ref cur
> >+ _get_comp_words_by_ref cur prev
> >
> > # List perf subcommands
> > if [ $COMP_CWORD -eq 1 ]; then
> > cmds=$(perf --list-cmds)
> > COMPREPLY=( $( compgen -W '$cmds' -- "$cur" ) )
> >+ # List possible events for -e option
> >+ elif [[ $prev == "-e" && "${COMP_WORDS[1]}" == @(record|stat|top) ]]; then
> >+ cmds=$(perf list --raw-dump)
> >+ COMPREPLY=( $( compgen -W '$cmds' -- $cur ) )
> > # Fall down to list regular files
> > else
> > _filedir
>
> Any reason to show a file list except for -i and -o options? e.g.,

Yeah, for example with perf record when you pass a command to launch and profile.

In any case I think it's a better idea to keep this as a default. Not breaking the
pre-existing default completion in the guarantee that the new completion is going
to be more useful than a burden.

>
> diff --git a/tools/perf/bash_completion b/tools/perf/bash_completion
> index 25f4d99..be97349 100644
> --- a/tools/perf/bash_completion
> +++ b/tools/perf/bash_completion
> @@ -17,7 +17,7 @@ _perf()
> cmds=$(perf list --raw-dump)
> COMPREPLY=( $( compgen -W '$cmds' -- $cur ) )
> # Fall down to list regular files
> - else
> + elif [[ $prev == "-o" || $prev == "-i" ]]; then
> _filedir
> fi
> } &&
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/