perf list: Remove blank lines, headers when piping output
authorArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 30 Sep 2015 20:13:26 +0000 (17:13 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 30 Sep 2015 21:34:38 +0000 (18:34 -0300)
So that one can, for instance, use it with wc -l:

  # perf list *:*write* | wc -l
  60

Or to look for the "bio" tracepoints, without 'perf list' headers:

  # perf list *:*bio* | head
    block:block_bio_backmerge                          [Tracepoint event]
    block:block_bio_bounce                             [Tracepoint event]
    block:block_bio_complete                           [Tracepoint event]
    block:block_bio_frontmerge                         [Tracepoint event]
    block:block_bio_queue                              [Tracepoint event]
    block:block_bio_remap                              [Tracepoint event]
  #

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-ts7sc0x8u4io4cifzkup4j44@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-list.c
tools/perf/util/parse-events.c
tools/perf/util/pmu.c

index af5bd05141088469d29d2fc7112927be96f2f610..6024140403446fe6cc7ab1db9b2a69af3785767c 100644 (file)
@@ -36,7 +36,7 @@ int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused)
 
        setup_pager();
 
-       if (!raw_dump)
+       if (!raw_dump && pager_in_use())
                printf("\nList of pre-defined events (to be used in -e):\n\n");
 
        if (argc == 0) {
index c1c64fb647aae76bd1b3d6261fdd90448d542431..5d0cfce2599b71e7b37b2cf5213b671843c1fed2 100644 (file)
@@ -1534,7 +1534,7 @@ restart:
                printf("  %-50s [%s]\n", evt_list[evt_i++],
                                event_type_descriptors[PERF_TYPE_TRACEPOINT]);
        }
-       if (evt_num)
+       if (evt_num && pager_in_use())
                printf("\n");
 
 out_free:
@@ -1690,7 +1690,7 @@ restart:
                printf("  %-50s [%s]\n", evt_list[evt_i++],
                                event_type_descriptors[PERF_TYPE_HW_CACHE]);
        }
-       if (evt_num)
+       if (evt_num && pager_in_use())
                printf("\n");
 
 out_free:
@@ -1763,7 +1763,7 @@ restart:
                }
                printf("  %-50s [%s]\n", evt_list[evt_i++], event_type_descriptors[type]);
        }
-       if (evt_num)
+       if (evt_num && pager_in_use())
                printf("\n");
 
 out_free:
@@ -1804,13 +1804,14 @@ void print_events(const char *event_glob, bool name_only)
                printf("  %-50s [%s]\n",
                       "cpu/t1=v1[,t2=v2,t3 ...]/modifier",
                       event_type_descriptors[PERF_TYPE_RAW]);
-               printf("   (see 'man perf-list' on how to encode it)\n");
-               printf("\n");
+               if (pager_in_use())
+                       printf("   (see 'man perf-list' on how to encode it)\n\n");
 
                printf("  %-50s [%s]\n",
                       "mem:<addr>[/len][:access]",
                        event_type_descriptors[PERF_TYPE_BREAKPOINT]);
-               printf("\n");
+               if (pager_in_use())
+                       printf("\n");
        }
 
        print_tracepoint_events(NULL, NULL, name_only);
index ac42c97be9e40fc08e1248dc2c65dadeb2bbd065..41a356ba3cfe8474b88b7343bdccd928843e2961 100644 (file)
@@ -1026,7 +1026,7 @@ void print_pmu_events(const char *event_glob, bool name_only)
                printf("  %-50s [Kernel PMU event]\n", aliases[j]);
                printed++;
        }
-       if (printed)
+       if (printed && pager_in_use())
                printf("\n");
 out_free:
        for (j = 0; j < len; j++)