From: Jiri Olsa <jo...@redhat.com>

Currently the perf.data header is always displayed for stdio output,
which is no always useful.

Disabling header information by default and adding following options to
control header output:

  --header      - display header information (old default)
  --header-only - display header information only w/o further
                  processing, forces stdio output

Signed-off-by: Jiri Olsa <jo...@redhat.com>
Acked-by: David Ahern <dsah...@gmail.com>
Cc: Corey Ashford <cjash...@linux.vnet.ibm.com>
Cc: David Ahern <dsah...@gmail.com>
Cc: Frederic Weisbecker <fweis...@gmail.com>
Cc: Ingo Molnar <mi...@elte.hu>
Cc: Namhyung Kim <namhy...@kernel.org>
Cc: Paul Mackerras <pau...@samba.org>
Cc: Peter Zijlstra <a.p.zijls...@chello.nl>
Cc: Stephane Eranian <eran...@google.com>
Link: http://lkml.kernel.org/r/1386583370-1699-2-git-send-email-jo...@redhat.com
[ Added single line explaining talking about the new --header* options,
  to address David Ahern comment; better man page entry for the new options,
  from Namhyung Kim ]
Signed-off-by: Arnaldo Carvalho de Melo <a...@redhat.com>
---
 tools/perf/Documentation/perf-report.txt |  9 +++++++++
 tools/perf/builtin-report.c              | 22 +++++++++++++++++++---
 2 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/tools/perf/Documentation/perf-report.txt 
b/tools/perf/Documentation/perf-report.txt
index 10a279871251..8eab8a4bdeb8 100644
--- a/tools/perf/Documentation/perf-report.txt
+++ b/tools/perf/Documentation/perf-report.txt
@@ -237,6 +237,15 @@ OPTIONS
        Do not show entries which have an overhead under that percent.
        (Default: 0).
 
+--header::
+       Show header information in the perf.data file.  This includes
+       various information like hostname, OS and perf version, cpu/mem
+       info, perf command line, event list and so on.  Currently only
+       --stdio output supports this feature.
+
+--header-only::
+       Show only perf.data header (forces --stdio).
+
 SEE ALSO
 --------
 linkperf:perf-stat[1], linkperf:perf-annotate[1]
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 8cf8e66ba594..3a14dbed387c 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -49,6 +49,8 @@ struct perf_report {
        bool                    show_threads;
        bool                    inverted_callchain;
        bool                    mem_mode;
+       bool                    header;
+       bool                    header_only;
        int                     max_stack;
        struct perf_read_values show_threads_values;
        const char              *pretty_printing_style;
@@ -514,9 +516,6 @@ static int __cmd_report(struct perf_report *rep)
                        return ret;
        }
 
-       if (use_browser <= 0)
-               perf_session__fprintf_info(session, stdout, 
rep->show_full_info);
-
        if (rep->show_threads)
                perf_read_values_init(&rep->show_threads_values);
 
@@ -820,6 +819,9 @@ int cmd_report(int argc, const char **argv, const char 
*prefix __maybe_unused)
        OPT_BOOLEAN(0, "gtk", &report.use_gtk, "Use the GTK2 interface"),
        OPT_BOOLEAN(0, "stdio", &report.use_stdio,
                    "Use the stdio interface"),
+       OPT_BOOLEAN(0, "header", &report.header, "Show data header."),
+       OPT_BOOLEAN(0, "header-only", &report.header_only,
+                   "Show only data header."),
        OPT_STRING('s', "sort", &sort_order, "key[,key2...]",
                   "sort by key(s): pid, comm, dso, symbol, parent, cpu, 
srcline,"
                   " dso_to, dso_from, symbol_to, symbol_from, mispredict,"
@@ -963,6 +965,10 @@ repeat:
                        goto error;
        }
 
+       /* Force tty output for header output. */
+       if (report.header || report.header_only)
+               use_browser = 0;
+
        if (strcmp(input_name, "-") != 0)
                setup_browser(true);
        else {
@@ -970,6 +976,16 @@ repeat:
                perf_hpp__init();
        }
 
+       if (report.header || report.header_only) {
+               perf_session__fprintf_info(session, stdout,
+                                          report.show_full_info);
+               if (report.header_only)
+                       return 0;
+       } else if (use_browser == 0) {
+               fputs("# To display the perf.data header info, please use 
--header/--header-only options.\n#\n",
+                     stdout);
+       }
+
        /*
         * Only in the TUI browser we are doing integrated annotation,
         * so don't allocate extra space that won't be used in the stdio
-- 
1.8.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to