From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
Peter Zijlstra <peterz@infradead.org>,
Frederic Weisbecker <fweisbec@gmail.com>,
Arnaldo Carvalho de Melo <acme@redhat.com>,
Borislav Petkov <bp@alien8.de>,
Arjan van de Ven <arjan@infradead.org>
Subject: [RFC][PATCH 6/8] perf/events: Add flag to produce nsec output
Date: Fri, 05 Aug 2011 16:59:27 -0400 [thread overview]
Message-ID: <20110805211302.119690302@goodmis.org> (raw)
In-Reply-To: 20110805205921.909038487@goodmis.org
[-- Attachment #1: 0006-perf-events-Add-flag-to-produce-nsec-output.patch --]
[-- Type: text/plain, Size: 3277 bytes --]
From: Steven Rostedt <srostedt@redhat.com>
libparsevent library prints out in usecs but perf wants to print out
in nsecs. Add a flag that lets the user decide to print out in usec
or nsec times.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
tools/lib/events/event-parse.c | 15 ++++++++++++---
tools/lib/events/event-parse.h | 12 ++++++++++++
tools/perf/util/trace-event-parse.c | 1 +
3 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/tools/lib/events/event-parse.c b/tools/lib/events/event-parse.c
index 3b4fac3..dff66ad 100644
--- a/tools/lib/events/event-parse.c
+++ b/tools/lib/events/event-parse.c
@@ -3935,15 +3935,16 @@ void pevent_print_event(struct pevent *pevent, struct trace_seq *s,
struct event_format *event;
unsigned long secs;
unsigned long usecs;
+ unsigned long nsecs;
const char *comm;
void *data = record->data;
int type;
int pid;
int len;
+ int p;
secs = record->ts / NSECS_PER_SEC;
- usecs = record->ts - secs * NSECS_PER_SEC;
- usecs = (usecs + 500) / NSECS_PER_USEC;
+ nsecs = record->ts - secs * NSECS_PER_SEC;
if (record->size < 0) {
do_warning("ug! negative record size %d", record->size);
@@ -3968,7 +3969,15 @@ void pevent_print_event(struct pevent *pevent, struct trace_seq *s,
} else
trace_seq_printf(s, "%16s-%-5d [%03d]", comm, pid, record->cpu);
- trace_seq_printf(s, " %5lu.%06lu: %s: ", secs, usecs, event->name);
+ if (pevent->flags & PEVENT_NSEC_OUTPUT) {
+ usecs = nsecs;
+ p = 9;
+ } else {
+ usecs = (nsecs + 500) / NSECS_PER_USEC;
+ p = 6;
+ }
+
+ trace_seq_printf(s, " %5lu.%0*lu: %s: ", secs, p, usecs, event->name);
/* Space out the event names evenly. */
len = strlen(event->name);
diff --git a/tools/lib/events/event-parse.h b/tools/lib/events/event-parse.h
index 2e0222d..8852827 100644
--- a/tools/lib/events/event-parse.h
+++ b/tools/lib/events/event-parse.h
@@ -334,6 +334,10 @@ enum pevent_func_arg_type {
PEVENT_FUNC_ARG_MAX_TYPES
};
+enum pevent_flag {
+ PEVENT_NSEC_OUTPUT = 1, /* output in NSECS */
+};
+
struct cmdline;
struct cmdline_list;
struct func_map;
@@ -373,6 +377,7 @@ struct pevent {
struct printk_list *printklist;
unsigned int printk_count;
+
struct event_format **events;
int nr_events;
struct event_format **sort_events;
@@ -397,6 +402,8 @@ struct pevent {
int test_filters;
+ int flags;
+
struct format_field *bprint_ip_field;
struct format_field *bprint_fmt_field;
struct format_field *bprint_buf_field;
@@ -408,6 +415,11 @@ struct pevent {
struct event_format *last_event;
};
+static inline void pevent_set_flag(struct pevent *pevent, int flag)
+{
+ pevent->flags |= flag;
+}
+
static inline unsigned short
__data2host2(struct pevent *pevent, unsigned short data)
{
diff --git a/tools/perf/util/trace-event-parse.c b/tools/perf/util/trace-event-parse.c
index ca3e5cd..f9604f1 100644
--- a/tools/perf/util/trace-event-parse.c
+++ b/tools/perf/util/trace-event-parse.c
@@ -47,6 +47,7 @@ int read_trace_init(int file_bigendian, int host_bigendian)
perf_pevent = pevent_alloc();
pevent = perf_pevent;
+ pevent_set_flag(pevent, PEVENT_NSEC_OUTPUT);
pevent_set_file_bigendian(pevent, file_bigendian);
pevent_set_host_bigendian(pevent, host_bigendian);
--
1.7.5.4
next prev parent reply other threads:[~2011-08-05 21:13 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-05 20:59 [RFC][PATCH 0/8] Having perf use libparsevent.a Steven Rostedt
2011-08-05 20:59 ` [RFC][PATCH 1/8] perf: Separate out trace-cmd parse-events from perf files Steven Rostedt
2011-08-15 16:14 ` David Ahern
2011-08-15 16:22 ` Steven Rostedt
2011-08-17 0:08 ` David Ahern
2011-08-17 0:31 ` Steven Rostedt
2011-08-18 13:51 ` Frederic Weisbecker
2011-08-18 16:37 ` David Ahern
2011-08-18 16:59 ` Steven Rostedt
2011-08-05 20:59 ` [RFC][PATCH 2/8] tools/events: Add files to create libparsevent.a Steven Rostedt
2011-08-05 20:59 ` [RFC][PATCH 3/8] perf: Build libparsevent.a Steven Rostedt
2011-08-05 20:59 ` [RFC][PATCH 4/8] events: Update tools/lib/events to work with perf Steven Rostedt
2011-08-05 20:59 ` [RFC][PATCH 5/8] perf: Have perf use the new libparsevent.a library Steven Rostedt
2011-08-05 20:59 ` Steven Rostedt [this message]
2011-08-05 20:59 ` [RFC][PATCH 7/8] perf/events: Add flag/symbol format_flags Steven Rostedt
2011-08-05 20:59 ` [RFC][PATCH 8/8] perf/events: Correct size given to memset Steven Rostedt
2011-08-05 21:24 ` [RFC][PATCH 0/8] Having perf use libparsevent.a Ingo Molnar
2011-08-06 0:43 ` Frederic Weisbecker
2011-08-06 6:48 ` Ingo Molnar
2011-08-06 14:56 ` Frederic Weisbecker
[not found] ` <CAKYOsXw+Q+h2D++LxAoCUJ3tFVEhczBgDWNjwXzuJ0mNDav_Rw@mail.gmail.com>
2011-08-06 15:18 ` Frederic Weisbecker
2011-08-06 15:35 ` Steven Rostedt
2011-08-06 1:01 ` Steven Rostedt
2011-08-06 6:51 ` Ingo Molnar
2011-08-08 21:30 ` Steven Rostedt
2011-08-06 9:14 ` Borislav Petkov
2011-08-06 0:07 ` David Ahern
2011-08-06 1:05 ` Steven Rostedt
2011-08-06 15:23 ` Colin Walters
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110805211302.119690302@goodmis.org \
--to=rostedt@goodmis.org \
--cc=acme@redhat.com \
--cc=arjan@infradead.org \
--cc=bp@alien8.de \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox