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

Jin, Yao
2018-03-28T14:56:29Z

On 3/28/2018 10:19 PM, Jiri Olsa wrote:
> 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@linux.intel.com>
>>>> ---
>>>> 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
>

That's fine. I will create the perf-version.txt.

> 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
>

Oh, yes. Let me check and update the code. Thanks so much for reminding
this.

Thanks
Jin Yao