Skip to content

Commit

Permalink
perf trace: Add option to show full timestamp
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
David Ahern authored and Arnaldo Carvalho de Melo committed Oct 9, 2013
1 parent c045bf0 commit 4bb0919
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
4 changes: 4 additions & 0 deletions tools/perf/Documentation/perf-trace.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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]
7 changes: 5 additions & 2 deletions tools/perf/builtin-trace.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -1195,7 +1196,7 @@ static int trace__run(struct trace *trace, int argc, const char **argv)
continue;
}

if (trace->base_time == 0)
if (!trace->full_time && trace->base_time == 0)
trace->base_time = sample.time;

if (type != PERF_RECORD_SAMPLE) {
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 4bb0919

Please sign in to comment.