Support perf -vv
v2 cover Support perf -vv
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. And users may complain that perf has issue or bug.
This patch-set support 'perf -vv' and 'perf -version --build-options' which will print the compiled-in status of libraries.
Once users think perf missing some functionality, it should be very easy for them to check the libraries status.
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 environmentJin Yao (3):
perf config: Add some new -DHAVE_XXX to CFLAGS perf version: Print the compiled-in status of libraries
perf: Support perf -vv
Jiri Olsa (1):
tools include: Add config.h header file
tools/include/tools/config.h | 34 ++++++++++++++++++++++ tools/perf/Makefile.config | 16 +++++++++++ tools/perf/builtin-version.c | 68 ++++++++++++++++++++++++++++++++++++++++++++ tools/perf/perf.c | 22 +++++++++++--- tools/perf/perf.h | 1 + 5 files changed, 137 insertions(+), 4 deletions(-) create mode 100644 tools/include/tools/config.h
Signature · 1 line
2.7.4
PATCH v2 1/4 tools include: Add config.h header file
From: Jiri Olsa <[email protected]>
Adding IS_BUILTIN macro and its dependencies into
tools world.
It's taken from kernel's include/linux/kconfig.h, which can't be taken completely due to its kconfig dependencies.
--- tools/include/tools/config.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 tools/include/tools/config.h
tools/include/tools/config.h new file +34 -0
@@ -0,0 +1,34 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _TOOLS_CONFIG_H +#define _TOOLS_CONFIG_H + +/* Subset of include/linux/kconfig.h */ + +#define __ARG_PLACEHOLDER_1 0, +#define __take_second_arg (__ignored, val, ...) val + +/* +* Helper macros to use CONFIG_ options in C/CPP expressions. Note that +* these only work with boolean and tristate options. +*/ + +/* +* Getting something that works in C and CPP for an arg that may or may +* not be defined is tricky. Here, if we have "#define CONFIG_BOOGER 1" +* we match on the placeholder define, insert the "0," for arg1 and generate +* the triplet (0, 1, 0). Then the last step cherry picks the 2nd arg (a one). +* When CONFIG_BOOGER is not defined, we generate a (... 1, 0) pair, and when +* the last step cherry picks the 2nd arg, we get a zero. +*/ +#define __is_defined (x) ___is_defined(x) +#define ___is_defined (val) ____is_defined(__ARG_PLACEHOLDER_##val) +#define ____is_defined (arg1_or_junk) __take_second_arg(arg1_or_junk 1, 0) + +/* +* IS_BUILTIN(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y', 0 +* otherwise. For boolean options, this is equivalent to +* IS_ENABLED(CONFIG_FOO). +*/ +#define IS_BUILTIN (option) __is_defined(option) + +#endif /* _TOOLS_CONFIG_H */
Signature · 1 line
2.7.4
PATCH v2 3/4 perf version: Print the compiled-in status of libraries
In reply to Jin YaoThis patch checks the values passed by CFLAGS (-DHAVE_XXX) and then print the status of libraries.
For example, if HAVE_DWARF_SUPPORT is defined, that means the library "dwarf" is compiled-in. The patch will print the status "on" for this library otherwise print the status "OFF".
v2:
---
1. Use IS_BUILTIN macro to replace #ifdef/#endif block.
2. Print color for on/OFF.
--- tools/perf/builtin-version.c | 68 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+)
tools/perf/builtin-version.c +68 -0
@@ -1,11 +1,79 @@// SPDX-License-Identifier: GPL-2.0 #include "builtin.h" #include "perf.h" +#include "color.h" #include <linux/compiler.h> +#include <tools/config.h> #include <stdio.h> +#include <string.h> + +int version_verbose; + +static void on_off_print (const char *status) +{ +printf ("[ " ); + +if (!strcmp (status,"OFF" )) +color_fprintf (stdout,PERF_COLOR_RED ,"%-3s" , status); +else +color_fprintf (stdout,PERF_COLOR_GREEN ,"%-3s" , status); + +printf (" ]" ); +} + +static void status_print (const char *name,const char *status) +{ +printf ("%22s: " , name); +on_off_print (status); +printf ("\n" ); +} + +#define STATUS (__d, __m) \ +do { \ + if (IS_BUILTIN(__d)) \ + status_print(#__m, "on"); \ + else \ + status_print(#__m, "OFF"); \ +} while (0) + +static void library_status (void ) +{ +STATUS (HAVE_DWARF_SUPPORT , dwarf); +STATUS (HAVE_DWARF_GETLOCATIONS , dwarf_getlocations); +STATUS (HAVE_GLIBC_SUPPORT , glibc); +STATUS (HAVE_GTK2_SUPPORT , gtk2); +STATUS (HAVE_LIBAUDIT_SUPPORT , libaudit); +STATUS (HAVE_LIBBFD_SUPPORT , libbfd); +STATUS (HAVE_LIBELF_SUPPORT , libelf); +STATUS (HAVE_LIBNUMA_SUPPORT , libnuma); +STATUS (HAVE_LIBNUMA_SUPPORT , numa_num_possible_cpus); +STATUS (HAVE_LIBPERL_SUPPORT , libperl); +STATUS (HAVE_LIBPYTHON_SUPPORT , libpython); +STATUS (HAVE_SLANG_SUPPORT , libslang); +STATUS (HAVE_LIBCRYPTO_SUPPORT , libcrypto); +STATUS (HAVE_LIBUNWIND_SUPPORT , libunwind); +STATUS (HAVE_DWARF_SUPPORT , libdw-dwarf-unwind); +STATUS (HAVE_ZLIB_SUPPORT , zlib); +STATUS (HAVE_LZMA_SUPPORT , lzma); +STATUS (HAVE_AUXTRACE_SUPPORT , get_cpuid); +STATUS (HAVE_LIBBPF_SUPPORT , bpf); + +on_off_print ("on" ); +printf (": library is compiled-in\n" ); + +on_off_print ("OFF" ); +printf (": library is disabled in make configuration\n" ); +printf (" OR library is not installed in build environment\n" ); +}int cmd_version (int argc__maybe_unused ,const char **argv__maybe_unused ) {printf ("perf version %s\n" , perf_version_string); + +if ((argc >1 && !strcmp (argv[1 ],"--build-options" )) || + (version_verbose ==1 )) { +library_status (); + } +return 0 ; }
Signature · 1 line
2.7.4
Re: [PATCH v2 3/4] perf version: Print the compiled-in status of libraries
On Wed, Mar 28, 2018 at 10:57:07PM +0800, Jin Yao wrote:
SNIP
Quoted 19 lines
tools/perf/builtin-version.c +19
-0+ +static void library_status (void ) +{ +STATUS (HAVE_DWARF_SUPPORT , dwarf); +STATUS (HAVE_DWARF_GETLOCATIONS , dwarf_getlocations); +STATUS (HAVE_GLIBC_SUPPORT , glibc); +STATUS (HAVE_GTK2_SUPPORT , gtk2); +STATUS (HAVE_LIBAUDIT_SUPPORT , libaudit); +STATUS (HAVE_LIBBFD_SUPPORT , libbfd); +STATUS (HAVE_LIBELF_SUPPORT , libelf); +STATUS (HAVE_LIBNUMA_SUPPORT , libnuma); +STATUS (HAVE_LIBNUMA_SUPPORT , numa_num_possible_cpus); +STATUS (HAVE_LIBPERL_SUPPORT , libperl); +STATUS (HAVE_LIBPYTHON_SUPPORT , libpython); +STATUS (HAVE_SLANG_SUPPORT , libslang); +STATUS (HAVE_LIBCRYPTO_SUPPORT , libcrypto); +STATUS (HAVE_LIBUNWIND_SUPPORT , libunwind); +STATUS (HAVE_DWARF_SUPPORT , libdw-dwarf-unwind); +STATUS (HAVE_ZLIB_SUPPORT , zlib);
tools/perf/builtin-version.c line 66
Quoted 10 lines
tools/perf/builtin-version.c +10
-0+STATUS (HAVE_LZMA_SUPPORT , lzma); +STATUS (HAVE_AUXTRACE_SUPPORT , get_cpuid); +STATUS (HAVE_LIBBPF_SUPPORT , bpf); + +on_off_print ("on" ); +printf (": library is compiled-in\n" ); + +on_off_print ("OFF" ); +printf (": library is disabled in make configuration\n" ); +printf (" OR library is not installed in build environment\n" );
[jolsa@krava perf]$ ./perf -vv
perf version 4.16.rc6.gcc183d
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
did anyone asked for this ^^^ help messages? I don't think they are necessary
jirka
Re: [PATCH v2 3/4] perf version: Print the compiled-in status of libraries
Quoted 55 lines · Jiri Olsa
On Wed, Mar 28, 2018 at 10:57:07PM +0800, Jin Yao wrote:
SNIP
Quoted 19 lines
tools/perf/builtin-version.c +19
-0+ +static void library_status (void ) +{ +STATUS (HAVE_DWARF_SUPPORT , dwarf); +STATUS (HAVE_DWARF_GETLOCATIONS , dwarf_getlocations); +STATUS (HAVE_GLIBC_SUPPORT , glibc); +STATUS (HAVE_GTK2_SUPPORT , gtk2); +STATUS (HAVE_LIBAUDIT_SUPPORT , libaudit); +STATUS (HAVE_LIBBFD_SUPPORT , libbfd); +STATUS (HAVE_LIBELF_SUPPORT , libelf); +STATUS (HAVE_LIBNUMA_SUPPORT , libnuma); +STATUS (HAVE_LIBNUMA_SUPPORT , numa_num_possible_cpus); +STATUS (HAVE_LIBPERL_SUPPORT , libperl); +STATUS (HAVE_LIBPYTHON_SUPPORT , libpython); +STATUS (HAVE_SLANG_SUPPORT , libslang); +STATUS (HAVE_LIBCRYPTO_SUPPORT , libcrypto); +STATUS (HAVE_LIBUNWIND_SUPPORT , libunwind); +STATUS (HAVE_DWARF_SUPPORT , libdw-dwarf-unwind); +STATUS (HAVE_ZLIB_SUPPORT , zlib);tools/perf/builtin-version.c line 66
Quoted 10 lines
tools/perf/builtin-version.c +10
-0+STATUS (HAVE_LZMA_SUPPORT , lzma); +STATUS (HAVE_AUXTRACE_SUPPORT , get_cpuid); +STATUS (HAVE_LIBBPF_SUPPORT , bpf); + +on_off_print ("on" ); +printf (": library is compiled-in\n" ); + +on_off_print ("OFF" ); +printf (": library is disabled in make configuration\n" ); +printf (" OR library is not installed in build environment\n" );[jolsa@krava perf]$ ./perf -vv
perf version 4.16.rc6.gcc183ddwarf: [ 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 ]
Quoted 8 lines
[ on ]: library is compiled-in
[ OFF ]: library is disabled in make configuration
OR library is not installed in build environmentdid anyone asked for this ^^^ help messages? I don't think they are necessary
jirka
No one ask for this. Since it's not very necessary, I will remove this message.
Thanks
Jin Yao
PATCH v2 4/4 perf: Support perf -vv
In reply to Jin YaoWe 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 environmentv2:
---
Use a global variable version_verbose to count the number of 'v'.
--- tools/perf/perf.c | 22 ++++++++++++++++++---- tools/perf/perf.h | 1 + 2 files changed, 19 insertions(+), 4 deletions(-)
tools/perf/perf.c +18 -4
@@ -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]" ;const char perf_more_info_string[] ="See 'perf help COMMAND' for more information on a specific command." ;
@@ -163,6 +163,8 @@ static int handle_options(const char ***argv, int *argc, int *envchanged) {int handled =0 ; + version_verbose =0 ; +while (*argc >0 ) {const char *cmd = (*argv)[0 ];if (cmd[0 ] !='-' )
@@ -185,9 +187,21 @@ static int handle_options(const char ***argv, int *argc, int *envchanged)break ; } -if (!strcmp (cmd,"-v" )) { - (*argv)[0 ] ="--version" ; -break ; +if (strstarts (cmd,"-v" )) { +int i; + +for (i =2 ; cmd[i]; i++) { +if (cmd[i] =='v' ) + version_verbose++; + } + +/* +* Only support -v and -vv now +*/ +if (version_verbose <2 ) { + (*argv)[0 ] ="--version" ; +break ; + } }/*
tools/perf/perf.h +1 -0
@@ -84,6 +84,7 @@ struct record_opts {struct option ;extern const char *const *record_usage;extern struct option *record_options; +extern int version_verbose;int record__parse_freq (const struct option *opt,const char *str,int unset);#endif
Signature · 1 line
2.7.4
Re: [PATCH v2 4/4] perf: Support perf -vv
Quoted 53 lines · Jin Yao
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 environmentv2:
---
Use a global variableversion_verboseto count the number of 'v'.Signed-off-by Jin Yao <[email protected]>--- tools/perf/perf.c | 22 ++++++++++++++++++---- tools/perf/perf.h | 1 + 2 files changed, 19 insertions(+), 4 deletions(-)tools/perf/perf.c +0
-0
tools/perf/perf.c line 35
Quoted 5 lines
tools/perf/perf.c +1
-1@@ -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
Re: [PATCH v2 4/4] perf: Support perf -vv
Quoted 56 lines · Jiri Olsa
Quoted 55 lines · Jin Yao
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 environmentv2:
---
Use a global variableversion_verboseto count the number of 'v'.Signed-off-by Jin Yao <[email protected]>--- tools/perf/perf.c | 22 ++++++++++++++++++---- tools/perf/perf.h | 1 + 2 files changed, 19 insertions(+), 4 deletions(-)tools/perf/perf.c +0
-0@@ -32,7 +32,7 @@#include <linux/kernel.h>
Quoted 8 lines
tools/perf/perf.c line 35
Quoted 3 lines
tools/perf/perf.c +1
-1const 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]";
Thanks
Jin Yao
Re: [PATCH v2 4/4] perf: Support perf -vv
Quoted 67 lines · Yao
Quoted 61 lines · Jiri Olsa
Quoted 53 lines · Jin Yao
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 environmentv2:
---
Use a global variableversion_verboseto count the number of 'v'.Signed-off-by Jin Yao <[email protected]>--- tools/perf/perf.c | 22 ++++++++++++++++++---- tools/perf/perf.h | 1 + 2 files changed, 19 insertions(+), 4 deletions(-)tools/perf/perf.c +0
-0tools/perf/perf.c line 34
Quoted 4 lines
tools/perf/perf.c +1
-1@@ -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?
Quoted 2 lines
jirka
Quoted 7 lines
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
Re: [PATCH v2 4/4] perf: Support perf -vv
Quoted 74 lines · Jiri Olsa
Quoted 73 lines · Yao
Quoted 61 lines · Jiri Olsa
Quoted 53 lines · Jin Yao
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 environmentv2:
---
Use a global variableversion_verboseto count the number of 'v'.Signed-off-by Jin Yao <[email protected]>--- tools/perf/perf.c | 22 ++++++++++++++++++---- tools/perf/perf.h | 1 + 2 files changed, 19 insertions(+), 4 deletions(-)tools/perf/perf.c +0
-0tools/perf/perf.c line 34
Quoted 4 lines
tools/perf/perf.c +1
-1@@ -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?
Quoted 2 lines
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.
Quoted 8 lines
Quoted 1 line
"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.
Quoted 5 lines
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);
Quoted 9 lines
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.gcc183dthanks,
jirka
Oh, yes. Let me check and update the code. Thanks so much for reminding this.
Thanks
Jin Yao
Re: [PATCH v2 4/4] perf: Support perf -vv
In reply to Jin YaoQuoted 2 lines · Jin Yao
$ ./perf -vv or ./perf -version --build-options perf version 4.13.rc5.gcb1183
My suggestion was to add the 'version' subcommand like Git has, not a "-version" option:
$ git version git version 2.14.1
Thanks,
Ingo
Re: [PATCH v2 4/4] perf: Support perf -vv
Quoted 9 lines · Ingo Molnar
Quoted 2 lines · Jin Yao
$ ./perf -vv or ./perf -version --build-options perf version 4.13.rc5.gcb1183My suggestion was to add the 'version' subcommand like Git has, not a "-version" option:
Quoted 7 lines
$ git version git version 2.14.1Thanks,
Ingo
Hi Ingo,
Sorry about that. Actually I find it's a bug in my patch. The 'perf -vxyz' is mapped to 'perf --version' mistakenly. So 'perf -version' will be mapped to 'perf --version' and 'perf -vabc' will be mapped too.
I will fix this bug.
Currently, 'perf -v', 'perf version' and 'perf --version' have the same behavior.
So I will let:
'perf -v --build-options',
'perf version --build-options',
'perf --version --build-options',
'perf -vv'
have same output.
For example,
$ ./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 ]Thanks
Jin Yao