perf report: Add --header/--header-only options
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 <jolsa@redhat.com> Acked-by: David Ahern <dsahern@gmail.com> Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com> Cc: David Ahern <dsahern@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/r/1386583370-1699-2-git-send-email-jolsa@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 <acme@redhat.com>
This commit is contained in:
parent
7ef2e81347
commit
5cfe2c82f3
|
@ -237,6 +237,15 @@ OPTIONS
|
||||||
Do not show entries which have an overhead under that percent.
|
Do not show entries which have an overhead under that percent.
|
||||||
(Default: 0).
|
(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
|
SEE ALSO
|
||||||
--------
|
--------
|
||||||
linkperf:perf-stat[1], linkperf:perf-annotate[1]
|
linkperf:perf-stat[1], linkperf:perf-annotate[1]
|
||||||
|
|
|
@ -49,6 +49,8 @@ struct perf_report {
|
||||||
bool show_threads;
|
bool show_threads;
|
||||||
bool inverted_callchain;
|
bool inverted_callchain;
|
||||||
bool mem_mode;
|
bool mem_mode;
|
||||||
|
bool header;
|
||||||
|
bool header_only;
|
||||||
int max_stack;
|
int max_stack;
|
||||||
struct perf_read_values show_threads_values;
|
struct perf_read_values show_threads_values;
|
||||||
const char *pretty_printing_style;
|
const char *pretty_printing_style;
|
||||||
|
@ -514,9 +516,6 @@ static int __cmd_report(struct perf_report *rep)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (use_browser <= 0)
|
|
||||||
perf_session__fprintf_info(session, stdout, rep->show_full_info);
|
|
||||||
|
|
||||||
if (rep->show_threads)
|
if (rep->show_threads)
|
||||||
perf_read_values_init(&rep->show_threads_values);
|
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, "gtk", &report.use_gtk, "Use the GTK2 interface"),
|
||||||
OPT_BOOLEAN(0, "stdio", &report.use_stdio,
|
OPT_BOOLEAN(0, "stdio", &report.use_stdio,
|
||||||
"Use the stdio interface"),
|
"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...]",
|
OPT_STRING('s', "sort", &sort_order, "key[,key2...]",
|
||||||
"sort by key(s): pid, comm, dso, symbol, parent, cpu, srcline,"
|
"sort by key(s): pid, comm, dso, symbol, parent, cpu, srcline,"
|
||||||
" dso_to, dso_from, symbol_to, symbol_from, mispredict,"
|
" dso_to, dso_from, symbol_to, symbol_from, mispredict,"
|
||||||
|
@ -963,6 +965,10 @@ repeat:
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Force tty output for header output. */
|
||||||
|
if (report.header || report.header_only)
|
||||||
|
use_browser = 0;
|
||||||
|
|
||||||
if (strcmp(input_name, "-") != 0)
|
if (strcmp(input_name, "-") != 0)
|
||||||
setup_browser(true);
|
setup_browser(true);
|
||||||
else {
|
else {
|
||||||
|
@ -970,6 +976,16 @@ repeat:
|
||||||
perf_hpp__init();
|
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,
|
* Only in the TUI browser we are doing integrated annotation,
|
||||||
* so don't allocate extra space that won't be used in the stdio
|
* so don't allocate extra space that won't be used in the stdio
|
||||||
|
|
Loading…
Reference in New Issue