2012-10-19 08:27:39

by Stephane Eranian

[permalink] [raw]
Subject: [BUG] perf list: --help option not implemented

Jiri,

When I run perf list, I see:

$ perf list
..
rNNN [Raw hardware
event descriptor]
cpu/t1=v1[,t2=v2,t3 ...]/modifier [Raw hardware
event descriptor]
(see 'perf list --help' on how to encode it)

But:
$ perf list --help
$

Shows nothing. Looked at the code and I don't see where you handle the --help
option. You need some help to figure out what the modifiers are.

Am I missing something here?


2012-10-19 08:46:55

by Jiri Olsa

[permalink] [raw]
Subject: Re: [BUG] perf list: --help option not implemented

On Fri, Oct 19, 2012 at 10:27:35AM +0200, Stephane Eranian wrote:
> Jiri,
>
> When I run perf list, I see:
>
> $ perf list
> ..
> rNNN [Raw hardware
> event descriptor]
> cpu/t1=v1[,t2=v2,t3 ...]/modifier [Raw hardware
> event descriptor]
> (see 'perf list --help' on how to encode it)
>
> But:
> $ perf list --help
> $
>
> Shows nothing. Looked at the code and I don't see where you handle the --help
> option. You need some help to figure out what the modifiers are.
>
> Am I missing something here?

nope, it's not working.. added on my todo list ;-)

thanks,
jirka

2012-10-22 07:12:28

by Namhyung Kim

[permalink] [raw]
Subject: Re: [BUG] perf list: --help option not implemented

Hi,

On Fri, 19 Oct 2012 10:46:36 +0200, Jiri Olsa wrote:
> On Fri, Oct 19, 2012 at 10:27:35AM +0200, Stephane Eranian wrote:
>> Jiri,
>>
>> When I run perf list, I see:
>>
>> $ perf list
>> ..
>> rNNN [Raw hardware
>> event descriptor]
>> cpu/t1=v1[,t2=v2,t3 ...]/modifier [Raw hardware
>> event descriptor]
>> (see 'perf list --help' on how to encode it)
>>
>> But:
>> $ perf list --help
>> $
>>
>> Shows nothing. Looked at the code and I don't see where you handle the --help
>> option. You need some help to figure out what the modifiers are.
>>
>> Am I missing something here?
>
> nope, it's not working.. added on my todo list ;-)

I think it worked.

It seems that commit cc5848213329 ("perf help: Remove use of die and
handle errors") caused the problem - it changed the initial value of
'help_format' from HELP_FORMAT_MAN to HELP_FORMAT_NONE.

The following patch works well for me:

diff --git a/tools/perf/builtin-help.c b/tools/perf/builtin-help.c
index 411ee5664e98..178b88ae3d2f 100644
--- a/tools/perf/builtin-help.c
+++ b/tools/perf/builtin-help.c
@@ -414,7 +414,7 @@ static int show_html_page(const char *perf_cmd)
int cmd_help(int argc, const char **argv, const char *prefix __maybe_unused)
{
bool show_all = false;
- enum help_format help_format = HELP_FORMAT_NONE;
+ enum help_format help_format = HELP_FORMAT_MAN;
struct option builtin_help_options[] = {
OPT_BOOLEAN('a', "all", &show_all, "print all available commands"),
OPT_SET_UINT('m', "man", &help_format, "show man page", HELP_FORMAT_MAN),

2012-10-22 08:32:34

by Jiri Olsa

[permalink] [raw]
Subject: Re: [BUG] perf list: --help option not implemented

On Mon, Oct 22, 2012 at 04:12:23PM +0900, Namhyung Kim wrote:
> Hi,
>
> On Fri, 19 Oct 2012 10:46:36 +0200, Jiri Olsa wrote:
> > On Fri, Oct 19, 2012 at 10:27:35AM +0200, Stephane Eranian wrote:
> >> Jiri,
> >>
> >> When I run perf list, I see:
> >>
> >> $ perf list
> >> ..
> >> rNNN [Raw hardware
> >> event descriptor]
> >> cpu/t1=v1[,t2=v2,t3 ...]/modifier [Raw hardware
> >> event descriptor]
> >> (see 'perf list --help' on how to encode it)
> >>
> >> But:
> >> $ perf list --help
> >> $
> >>
> >> Shows nothing. Looked at the code and I don't see where you handle the --help
> >> option. You need some help to figure out what the modifiers are.
> >>
> >> Am I missing something here?
> >
> > nope, it's not working.. added on my todo list ;-)
>
> I think it worked.

removed from my todo list ;)

seems like your patch adds man page as default for 'perf <command> --help'
sooo git-like ;) I dont mind..

jirka

2012-10-22 13:26:10

by David Ahern

[permalink] [raw]
Subject: Re: [BUG] perf list: --help option not implemented

On 10/22/12 1:12 AM, Namhyung Kim wrote:
> It seems that commit cc5848213329 ("perf help: Remove use of die and
> handle errors") caused the problem - it changed the initial value of
> 'help_format' from HELP_FORMAT_MAN to HELP_FORMAT_NONE.
>
> The following patch works well for me:
>
> diff --git a/tools/perf/builtin-help.c b/tools/perf/builtin-help.c
> index 411ee5664e98..178b88ae3d2f 100644
> --- a/tools/perf/builtin-help.c
> +++ b/tools/perf/builtin-help.c
> @@ -414,7 +414,7 @@ static int show_html_page(const char *perf_cmd)
> int cmd_help(int argc, const char **argv, const char *prefix __maybe_unused)
> {
> bool show_all = false;
> - enum help_format help_format = HELP_FORMAT_NONE;
> + enum help_format help_format = HELP_FORMAT_MAN;
> struct option builtin_help_options[] = {
> OPT_BOOLEAN('a', "all", &show_all, "print all available commands"),
> OPT_SET_UINT('m', "man", &help_format, "show man page", HELP_FORMAT_MAN),
>

D'oh. Thanks for debugging, Namhyung.

Acked-by/Tested-by: David Ahern <[email protected]>

2012-10-24 06:04:49

by Namhyung Kim

[permalink] [raw]
Subject: [tip:perf/urgent] perf help: Fix --help for builtins

Commit-ID: 670ab5d21c7e168c89a36fdd2c69fb7af63d35a1
Gitweb: http://git.kernel.org/tip/670ab5d21c7e168c89a36fdd2c69fb7af63d35a1
Author: Namhyung Kim <[email protected]>
AuthorDate: Mon, 22 Oct 2012 16:12:23 +0900
Committer: Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Mon, 22 Oct 2012 12:35:49 -0200

perf help: Fix --help for builtins

It seems that commit cc5848213329 ("perf help: Remove use of die and
handle errors") caused the problem - it changed the initial value of
'help_format' from HELP_FORMAT_MAN to HELP_FORMAT_NONE.

This broke the --help option for all builtins, that would produce no
output, while 'man perf-top' would work it MANPATH is properly setup.

Reported-by: Stephane Eranian <[email protected]>
Signed-off-by: Namhyung Kim <[email protected]>
Tested-by: David Ahern <[email protected]>
Acked-by: David Ahern <[email protected]>
Cc: David Ahern <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Stephane Eranian <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
tools/perf/builtin-help.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/tools/perf/builtin-help.c b/tools/perf/builtin-help.c
index 411ee56..178b88a 100644
--- a/tools/perf/builtin-help.c
+++ b/tools/perf/builtin-help.c
@@ -414,7 +414,7 @@ static int show_html_page(const char *perf_cmd)
int cmd_help(int argc, const char **argv, const char *prefix __maybe_unused)
{
bool show_all = false;
- enum help_format help_format = HELP_FORMAT_NONE;
+ enum help_format help_format = HELP_FORMAT_MAN;
struct option builtin_help_options[] = {
OPT_BOOLEAN('a', "all", &show_all, "print all available commands"),
OPT_SET_UINT('m', "man", &help_format, "show man page", HELP_FORMAT_MAN),