perf trace: Add option to show full timestamp
Current timestamp shown for output is time relative to firt sample. This patch adds an option to show the absolute perf_clock timestamp which is useful when comparing output across commands (e.g., perf-trace to perf-script). Signed-off-by: David Ahern <dsahern@gmail.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/r/1378319865-55695-1-git-send-email-dsahern@gmail.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Родитель
c045bf02e4
Коммит
4bb09192d3
|
@ -78,6 +78,10 @@ the thread executes on the designated CPUs. Default is to monitor all CPUs.
|
|||
--input
|
||||
Process events from a given perf data file.
|
||||
|
||||
-T
|
||||
--time
|
||||
Print full timestamp rather time relative to first sample.
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkperf:perf-record[1], linkperf:perf-script[1]
|
||||
|
|
|
@ -624,6 +624,7 @@ struct trace {
|
|||
struct perf_record_opts opts;
|
||||
struct machine host;
|
||||
u64 base_time;
|
||||
bool full_time;
|
||||
FILE *output;
|
||||
unsigned long nr_events;
|
||||
struct strlist *ev_qualifier;
|
||||
|
@ -1066,7 +1067,7 @@ static int trace__process_sample(struct perf_tool *tool,
|
|||
if (skip_sample(trace, sample))
|
||||
return 0;
|
||||
|
||||
if (trace->base_time == 0)
|
||||
if (!trace->full_time && trace->base_time == 0)
|
||||
trace->base_time = sample->time;
|
||||
|
||||
if (handler)
|
||||
|
@ -1195,7 +1196,7 @@ again:
|
|||
continue;
|
||||
}
|
||||
|
||||
if (trace->base_time == 0)
|
||||
if (!trace->full_time && trace->base_time == 0)
|
||||
trace->base_time = sample.time;
|
||||
|
||||
if (type != PERF_RECORD_SAMPLE) {
|
||||
|
@ -1433,6 +1434,8 @@ int cmd_trace(int argc, const char **argv, const char *prefix __maybe_unused)
|
|||
trace__set_duration),
|
||||
OPT_BOOLEAN(0, "sched", &trace.sched, "show blocking scheduler events"),
|
||||
OPT_INCR('v', "verbose", &verbose, "be more verbose"),
|
||||
OPT_BOOLEAN('T', "time", &trace.full_time,
|
||||
"Show full timestamp, not time relative to first start"),
|
||||
OPT_END()
|
||||
};
|
||||
int err;
|
||||
|
|
Загрузка…
Ссылка в новой задаче