linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] perf trace: Add option to show full timestamp
@ 2013-09-04 18:37 David Ahern
  2013-09-04 18:37 ` [PATCH 2/3] perf trace: Remove duplicate mmap entry in syscall_fmts array David Ahern
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: David Ahern @ 2013-09-04 18:37 UTC (permalink / raw)
  To: acme, linux-kernel
  Cc: David Ahern, Adrian Hunter, Frederic Weisbecker, Jiri Olsa,
	Mike Galbraith, Paul Mackerras, Peter Zijlstra, Stephane Eranian

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>
---
 tools/perf/Documentation/perf-trace.txt |    4 ++++
 tools/perf/builtin-trace.c              |    7 +++++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/tools/perf/Documentation/perf-trace.txt b/tools/perf/Documentation/perf-trace.txt
index daccd2c..a93e91a 100644
--- a/tools/perf/Documentation/perf-trace.txt
+++ b/tools/perf/Documentation/perf-trace.txt
@@ -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]
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 6730862..9ef489c 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -605,6 +605,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;
@@ -1047,7 +1048,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)
@@ -1176,7 +1177,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) {
@@ -1413,6 +1414,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;
-- 
1.7.10.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] perf trace: Remove duplicate mmap entry in syscall_fmts array
  2013-09-04 18:37 [PATCH 1/3] perf trace: Add option to show full timestamp David Ahern
@ 2013-09-04 18:37 ` David Ahern
  2013-10-15  5:21   ` [tip:perf/core] " tip-bot for David Ahern
  2013-09-04 18:37 ` [PATCH 3/3] perf trace: Add beautifier for clock_gettime's clk_id argument David Ahern
  2013-10-15  5:21 ` [tip:perf/core] perf trace: Add option to show full timestamp tip-bot for David Ahern
  2 siblings, 1 reply; 5+ messages in thread
From: David Ahern @ 2013-09-04 18:37 UTC (permalink / raw)
  To: acme, linux-kernel
  Cc: David Ahern, Adrian Hunter, Frederic Weisbecker, Jiri Olsa,
	Mike Galbraith, Paul Mackerras, Peter Zijlstra, Stephane Eranian

Entries in syscall_fmts need to be in alphabetical order, and the
duplicate entry breaks bsearch on new entries around this duplicate
entry.

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>
---
 tools/perf/builtin-trace.c |    1 -
 1 file changed, 1 deletion(-)

diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 9ef489c..b245102 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -442,7 +442,6 @@ static struct syscall_fmt {
 	{ .name	    = "arch_prctl", .errmsg = true, .alias = "prctl", },
 	{ .name	    = "brk",	    .hexret = true,
 	  .arg_scnprintf = { [0] = SCA_HEX, /* brk */ }, },
-	{ .name	    = "mmap",	    .hexret = true, },
 	{ .name	    = "connect",    .errmsg = true, },
 	{ .name	    = "fcntl",	    .errmsg = true,
 	  .arg_scnprintf = { [1] = SCA_STRARRAY, /* cmd */ },
-- 
1.7.10.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] perf trace: Add beautifier for clock_gettime's clk_id argument
  2013-09-04 18:37 [PATCH 1/3] perf trace: Add option to show full timestamp David Ahern
  2013-09-04 18:37 ` [PATCH 2/3] perf trace: Remove duplicate mmap entry in syscall_fmts array David Ahern
@ 2013-09-04 18:37 ` David Ahern
  2013-10-15  5:21 ` [tip:perf/core] perf trace: Add option to show full timestamp tip-bot for David Ahern
  2 siblings, 0 replies; 5+ messages in thread
From: David Ahern @ 2013-09-04 18:37 UTC (permalink / raw)
  To: acme, linux-kernel
  Cc: David Ahern, Adrian Hunter, Frederic Weisbecker, Jiri Olsa,
	Mike Galbraith, Paul Mackerras, Peter Zijlstra, Stephane Eranian

Before:
0.030 ( 0.002 ms): 2571 clock_gettime(which_clock: 1, tp: 0x7f3b45729cd0 ) = 0

After:
0.030 ( 0.002 ms): 2571 clock_gettime(which_clock: MONOTONIC, tp: 0x7f3b45729cd0 ) = 0

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>
---
 tools/perf/builtin-trace.c |   33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index b245102..f943960 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -428,6 +428,37 @@ static size_t syscall_arg__scnprintf_signum(char *bf, size_t size, struct syscal
 
 #define SCA_SIGNUM syscall_arg__scnprintf_signum
 
+static size_t
+syscall_arg__scnprintf_clk_gettime(char *bf, size_t size,
+				   struct syscall_arg *arg)
+{
+	size_t printed = 0;
+	clockid_t clk_id = arg->val;
+
+	switch (clk_id) {
+#define	P_CLOCK_ID(n) case CLOCK_##n: printed = scnprintf(bf, size, #n);
+	P_CLOCK_ID(REALTIME);		break;
+#ifdef CLOCK_REALTIME_COARSE
+	P_CLOCK_ID(REALTIME_COARSE);	break;
+#endif
+	P_CLOCK_ID(MONOTONIC);		break;
+#ifdef CLOCK_MONOTONIC_RAW
+	P_CLOCK_ID(MONOTONIC_RAW);	break;
+#endif
+#ifdef CLOCK_MONOTONIC_COARSE
+	P_CLOCK_ID(MONOTONIC_COARSE);	break;
+#endif
+	P_CLOCK_ID(PROCESS_CPUTIME_ID);	break;
+	P_CLOCK_ID(THREAD_CPUTIME_ID);	break;
+#undef P_CLOCK_ID
+	default: printed = scnprintf(bf, size, "%#x", arg); break;
+	}
+
+	return printed;
+}
+
+#define SCA_CLOCK_ID syscall_arg__scnprintf_clk_gettime
+
 static struct syscall_fmt {
 	const char *name;
 	const char *alias;
@@ -442,6 +473,8 @@ static struct syscall_fmt {
 	{ .name	    = "arch_prctl", .errmsg = true, .alias = "prctl", },
 	{ .name	    = "brk",	    .hexret = true,
 	  .arg_scnprintf = { [0] = SCA_HEX, /* brk */ }, },
+	{ .name	    = "clock_gettime", .errmsg = true,
+	  .arg_scnprintf = { [0] = SCA_CLOCK_ID, /* clk_id */ }, },
 	{ .name	    = "connect",    .errmsg = true, },
 	{ .name	    = "fcntl",	    .errmsg = true,
 	  .arg_scnprintf = { [1] = SCA_STRARRAY, /* cmd */ },
-- 
1.7.10.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [tip:perf/core] perf trace: Add option to show full timestamp
  2013-09-04 18:37 [PATCH 1/3] perf trace: Add option to show full timestamp David Ahern
  2013-09-04 18:37 ` [PATCH 2/3] perf trace: Remove duplicate mmap entry in syscall_fmts array David Ahern
  2013-09-04 18:37 ` [PATCH 3/3] perf trace: Add beautifier for clock_gettime's clk_id argument David Ahern
@ 2013-10-15  5:21 ` tip-bot for David Ahern
  2 siblings, 0 replies; 5+ messages in thread
From: tip-bot for David Ahern @ 2013-10-15  5:21 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: acme, linux-kernel, eranian, paulus, hpa, mingo, peterz, efault,
	jolsa, fweisbec, dsahern, adrian.hunter, tglx

Commit-ID:  4bb09192d38ef08f0619667527cabb26354fff89
Gitweb:     http://git.kernel.org/tip/4bb09192d38ef08f0619667527cabb26354fff89
Author:     David Ahern <dsahern@gmail.com>
AuthorDate: Wed, 4 Sep 2013 12:37:43 -0600
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 9 Oct 2013 11:10:49 -0300

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>
---
 tools/perf/Documentation/perf-trace.txt | 4 ++++
 tools/perf/builtin-trace.c              | 7 +++++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/tools/perf/Documentation/perf-trace.txt b/tools/perf/Documentation/perf-trace.txt
index daccd2c..a93e91a 100644
--- a/tools/perf/Documentation/perf-trace.txt
+++ b/tools/perf/Documentation/perf-trace.txt
@@ -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]
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 7ce036e..bc21140 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -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;

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [tip:perf/core] perf trace: Remove duplicate mmap entry in syscall_fmts array
  2013-09-04 18:37 ` [PATCH 2/3] perf trace: Remove duplicate mmap entry in syscall_fmts array David Ahern
@ 2013-10-15  5:21   ` tip-bot for David Ahern
  0 siblings, 0 replies; 5+ messages in thread
From: tip-bot for David Ahern @ 2013-10-15  5:21 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: acme, linux-kernel, eranian, paulus, hpa, mingo, peterz, efault,
	jolsa, fweisbec, dsahern, adrian.hunter, tglx

Commit-ID:  770480592084d2c114adedfbe6740e345aaf2279
Gitweb:     http://git.kernel.org/tip/770480592084d2c114adedfbe6740e345aaf2279
Author:     David Ahern <dsahern@gmail.com>
AuthorDate: Wed, 4 Sep 2013 12:37:44 -0600
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 9 Oct 2013 11:10:56 -0300

perf trace: Remove duplicate mmap entry in syscall_fmts array

Entries in syscall_fmts need to be in alphabetical order, and the
duplicate entry breaks bsearch on new entries around this duplicate
entry.

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-2-git-send-email-dsahern@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/builtin-trace.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index bc21140..903416c 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -461,7 +461,6 @@ static struct syscall_fmt {
 	{ .name	    = "arch_prctl", .errmsg = true, .alias = "prctl", },
 	{ .name	    = "brk",	    .hexret = true,
 	  .arg_scnprintf = { [0] = SCA_HEX, /* brk */ }, },
-	{ .name	    = "mmap",	    .hexret = true, },
 	{ .name	    = "connect",    .errmsg = true, },
 	{ .name	    = "fcntl",	    .errmsg = true,
 	  .arg_scnprintf = { [1] = SCA_STRARRAY, /* cmd */ },

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-10-15  5:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-04 18:37 [PATCH 1/3] perf trace: Add option to show full timestamp David Ahern
2013-09-04 18:37 ` [PATCH 2/3] perf trace: Remove duplicate mmap entry in syscall_fmts array David Ahern
2013-10-15  5:21   ` [tip:perf/core] " tip-bot for David Ahern
2013-09-04 18:37 ` [PATCH 3/3] perf trace: Add beautifier for clock_gettime's clk_id argument David Ahern
2013-10-15  5:21 ` [tip:perf/core] perf trace: Add option to show full timestamp tip-bot for David Ahern

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).