mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@gmail.com>
To: Andi Kleen <andi@firstfloor.org>
Cc: jolsa@redhat.com, linux-kernel@vger.kernel.org,
	acme@infradead.org, Andi Kleen <ak@linux.intel.com>
Subject: Re: [PATCH 2/9] perf, tools: Add support for text descriptions of events and alias add
Date: Mon, 09 Jun 2014 13:57:47 +0900	[thread overview]
Message-ID: <87ha3ud6ic.fsf@sejong.aot.lge.com> (raw)
In-Reply-To: <1401486615-21374-3-git-send-email-andi@firstfloor.org> (Andi Kleen's message of "Fri, 30 May 2014 14:50:08 -0700")

Hi Andi,

On Fri, 30 May 2014 14:50:08 -0700, Andi Kleen wrote:
> @@ -756,22 +816,31 @@ void print_pmu_events(const char *event_glob, bool name_only)
>  			      (!is_cpu && strglobmatch(alias->name,
>  						       event_glob))))
>  				continue;
> -			aliases[j] = name;
> -			if (is_cpu && !name_only)
> -				aliases[j] = format_alias_or(buf, sizeof(buf),
> -							      pmu, alias);
> -			aliases[j] = strdup(aliases[j]);
> +			aliases[j].name = name;
> +			if (is_cpu && !name_only && !alias->desc)
> +				aliases[j].name = format_alias_or(buf,
> +								  sizeof(buf),
> +								  pmu, alias);
> +			aliases[j].name = strdup(aliases[j].name);
> +			aliases[j].desc = alias->desc;
>  			j++;
>  		}
>  	len = j;
> -	qsort(aliases, len, sizeof(char *), cmp_string);
> +	qsort(aliases, len, sizeof(struct pair), cmp_pair);
>  	for (j = 0; j < len; j++) {
>  		if (name_only) {
> -			printf("%s ", aliases[j]);
> +			printf("%s ", aliases[j].name);
>  			continue;
>  		}
> -		printf("  %-50s [Kernel PMU event]\n", aliases[j]);
> -		zfree(&aliases[j]);
> +		if (aliases[j].desc) {
> +			if (numdesc++ == 0 && printed)
> +				printf("\n");
> +			printf("  %-50s [", aliases[j].name);
> +			wordwrap(aliases[j].desc, 53, columns, 1);
> +			printf("]\n");
> +		} else
> +			printf("  %-50s [Kernel PMU event]\n", aliases[j].name);
> +		zfree(&aliases[j].name);

Hmm.. this will print the description at right side and I think it'd be
better if it prints in another line(s) like below:


  agu_bypass_cancel.count                            [Kernel PMU event]
        This event counts executed load operations with all the following
         traits: 1. addressing of the format [base + offset], 2. the offset
         is between 1 and 2047, 3. the address specified in the base register
         is in one page and the address [base+offset] is in an
  arith.fpu_div                                      [Kernel PMU event]
        Divide operations executed
  arith.fpu_div_active                               [Kernel PMU event]
        Cycles when divider is busy executing divide operations
  ...


I just tweaked it using -v option for perf list.  Below is the change I
made on top of your series.  What do you think?

Thanks,
Namhyung


diff --git a/tools/perf/builtin-list.c b/tools/perf/builtin-list.c
index 086c96fa959b..e65a3b428a44 100644
--- a/tools/perf/builtin-list.c
+++ b/tools/perf/builtin-list.c
@@ -13,6 +13,7 @@
 
 #include "util/parse-events.h"
 #include "util/cache.h"
+#include "util/debug.h"
 #include "util/pmu.h"
 #include "util/parse-options.h"
 
@@ -22,6 +23,8 @@ int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused)
 	const struct option list_options[] = {
 		OPT_STRING(0, "events-file", &json_file, "json file",
 			   "Read event json file"),
+		OPT_INCR('v', "verbose", &verbose,
+			 "be more verbose (show event description if exist)"),
 		OPT_END()
 	};
 	const char * const list_usage[] = {
diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index b87f52058bb4..99a2156e6c54 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -838,14 +838,16 @@ void print_pmu_events(const char *event_glob, bool name_only)
 			printf("%s ", aliases[j].name);
 			continue;
 		}
-		if (aliases[j].desc) {
-			if (numdesc++ == 0 && printed)
-				printf("\n");
-			printf("  %-50s [", aliases[j].name);
-			wordwrap(aliases[j].desc, 53, columns, 1);
-			printf("]\n");
-		} else
-			printf("  %-50s [Kernel PMU event]\n", aliases[j].name);
+
+		if (aliases[j].desc && numdesc++ == 0 && printed)
+			printf("\n");
+		printf("  %-50s [Kernel PMU event]\n", aliases[j].name);
+
+		if (aliases[j].desc && verbose) {
+			printf("%8s", "");
+			wordwrap(aliases[j].desc, 8, columns, 1);
+			printf("\n");
+		}
 		zfree(&aliases[j].name);
 		printed++;
 	}



  reply	other threads:[~2014-06-09  4:57 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-30 21:50 perf: Add support for full Intel event lists v5 Andi Kleen
2014-05-30 21:50 ` [PATCH 1/9] perf, tools: Add jsmn `jasmine' JSON parser v2 Andi Kleen
2014-05-30 21:50 ` [PATCH 2/9] perf, tools: Add support for text descriptions of events and alias add Andi Kleen
2014-06-09  4:57   ` Namhyung Kim [this message]
2014-06-09 16:52     ` Andi Kleen
2014-06-10  5:58       ` Namhyung Kim
2014-05-30 21:50 ` [PATCH 3/9] perf, tools: Add support for reading JSON event files v3 Andi Kleen
2014-05-30 21:50 ` [PATCH 4/9] perf, tools: Automatically look for event file name for cpu v2 Andi Kleen
2014-05-30 21:50 ` [PATCH 5/9] perf, tools: Add perf download to download event files v3 Andi Kleen
2014-05-30 21:50 ` [PATCH 6/9] perf, tools: Allow events with dot Andi Kleen
2014-05-30 21:50 ` [PATCH 7/9] perf, tools: Query terminal width and use in perf list Andi Kleen
2014-05-30 21:50 ` [PATCH 8/9] perf, tools, test: Add test case for alias and JSON parsing v2 Andi Kleen
2014-05-30 21:50 ` [PATCH 9/9] perf, tools, record: Always allow to overide default period v2 Andi Kleen
2014-06-04 15:33   ` Namhyung Kim
2014-06-04 16:59     ` Andi Kleen
2014-06-09  5:21       ` Namhyung Kim
2014-06-09  5:56 ` perf: Add support for full Intel event lists v5 Namhyung Kim
2014-06-09 18:01   ` Andi Kleen
  -- strict thread matches above, loose matches on Subject: below --
2014-06-27 23:15 perf: Add support for full Intel event lists v7 Andi Kleen
2014-06-27 23:15 ` [PATCH 2/9] perf, tools: Add support for text descriptions of events and alias add Andi Kleen
2014-07-09 22:19   ` Jiri Olsa
2014-07-11 22:55     ` Andi Kleen
2014-07-09 22:19   ` Jiri Olsa
2014-06-13 23:02 perf: Add support for full Intel event lists v6 Andi Kleen
2014-06-13 23:02 ` [PATCH 2/9] perf, tools: Add support for text descriptions of events and alias add Andi Kleen
2014-05-15 22:03 perf: Add support for full Intel event lists v4 Andi Kleen
2014-05-15 22:03 ` [PATCH 2/9] perf, tools: Add support for text descriptions of events and alias add Andi Kleen
2014-05-12 22:51 perf: Add support for full Intel event lists v3 Andi Kleen
2014-05-12 22:51 ` [PATCH 2/9] perf, tools: Add support for text descriptions of events and alias add Andi Kleen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87ha3ud6ic.fsf@sejong.aot.lge.com \
    --to=namhyung@gmail.com \
    --cc=acme@infradead.org \
    --cc=ak@linux.intel.com \
    --cc=andi@firstfloor.org \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome