Re: [PATCH v2 4/4] perf: Support perf -vv

From: Jiri Olsa
Date: Wed Mar 28 2018 - 10:20:03 EST


On Wed, Mar 28, 2018 at 10:00:32PM +0800, Jin, Yao wrote:
>
>
> On 3/28/2018 9:22 PM, Jiri Olsa wrote:
> > On Wed, Mar 28, 2018 at 10:57:08PM +0800, Jin Yao wrote:
> > > We keep having bug reports that when users build perf on their own,
> > > but they don't install some needed libraries such as libelf,
> > > libbfd/libibery.
> > >
> > > The perf can build, but it is missing important functionality.
> > >
> > > This patch provides a new option '-vv' which will print the
> > > compiled-in status of libraries.
> > >
> > > The 'perf -vv' is equal to 'perf -version --build-options'.
> > >
> > > For example:
> > >
> > > $ ./perf -vv or ./perf -version --build-options
> > > perf version 4.13.rc5.gcb1183
> > > dwarf: [ on ]
> > > dwarf_getlocations: [ on ]
> > > glibc: [ on ]
> > > gtk2: [ on ]
> > > libaudit: [ OFF ]
> > > libbfd: [ on ]
> > > libelf: [ on ]
> > > libnuma: [ on ]
> > > numa_num_possible_cpus: [ on ]
> > > libperl: [ on ]
> > > libpython: [ on ]
> > > libslang: [ on ]
> > > libcrypto: [ on ]
> > > libunwind: [ on ]
> > > libdw-dwarf-unwind: [ on ]
> > > zlib: [ on ]
> > > lzma: [ on ]
> > > get_cpuid: [ on ]
> > > bpf: [ on ]
> > > [ on ]: library is compiled-in
> > > [ OFF ]: library is disabled in make configuration
> > > OR library is not installed in build environment
> > >
> > > v2:
> > > ---
> > > Use a global variable version_verbose to count the number of 'v'.
> > >
> > > Signed-off-by: Jin Yao <yao.jin@xxxxxxxxxxxxxxx>
> > > ---
> > > tools/perf/perf.c | 22 ++++++++++++++++++----
> > > tools/perf/perf.h | 1 +
> > > 2 files changed, 19 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/tools/perf/perf.c b/tools/perf/perf.c
> > > index 1b3fc8e..355219e 100644
> > > --- a/tools/perf/perf.c
> > > +++ b/tools/perf/perf.c
> > > @@ -32,7 +32,7 @@
> > > #include <linux/kernel.h>
> > > const char perf_usage_string[] =
> > > - "perf [--version] [--help] [OPTIONS] COMMAND [ARGS]";
> > > + "perf [--version [--build-options]] [--help] [OPTIONS] COMMAND [ARGS]";
> >
> > --build-options is 'perf version' option no?
> >
> > jirka
> >
>
> Yes. Command-line something like:
>
> perf --version --build-options or perf -v --build-options.
>
> Is this usage string not correct? If so, I'd like to fix that.
>
> "perf [--version [--build-options]] [--help] [OPTIONS] COMMAND [ARGS]";

ah I forgot that --version is in fact 'perf version'
now I see --build-options depends on --version.. ok ;-)

could you please also create Documentation/perf-version.txt,
now when it has option, we should document it

also please use the standard option parsing API we use in commands:

argc = parse_options(argc, argv, record_options, record_usage,
PARSE_OPT_STOP_AT_NON_OPTION);

so we get standard error when the option is mangled,
unlinke now, when it's silent:

[jolsa@krava perf]$ ./perf --version --buil
perf version 4.16.rc6.gcc183d

thanks,
jirka