From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
To: David Ahern <daahern@cisco.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>,
linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
mingo@elte.hu, peterz@infradead.org, paulus@samba.org,
tglx@linutronix.de
Subject: Re: [PATCH 4/6] perf script: dump software events too
Date: Tue, 1 Mar 2011 13:49:26 -0300 [thread overview]
Message-ID: <20110301164926.GD26068@ghostprotocols.net> (raw)
In-Reply-To: <4D6D1AA8.4060809@cisco.com>
Em Tue, Mar 01, 2011 at 09:11:20AM -0700, David Ahern escreveu:
> On 03/01/2011 08:11 AM, Frederic Weisbecker wrote:
> > Why shouldn't it be designed to dump software events? It's called print_event().
> > Its current version is rather something I would call "limited". But it
> > was not designed to be limited.
> That's because its origins are trace specific. Per last week's thread,
> perf-script was perf-trace until Nov 2010. perf-script deals with
> tracepoints.
> > Ideally, we should have print_tracepoint_event() in
> > trace-event-parse.c, print_software_event()
> > where you want, and have print_event() in builtin-script.c that wraps on those.
>
> process_event does not take the event sample, it takes elements of it:
>
> struct scripting_ops {
> ...
> void (*process_event) (int cpu, void *data, int size,
> unsigned long long nsecs, char *comm);
I still have to read the entire thread, but this definetely should
receive "struct perf_sample", i.e. the parsed sample and the 'struct
thread' from where it can get the comm, etc
Look at the process_event for builtin-script.c:
scripting_ops->process_event(sample->cpu,
sample->raw_data,
sample->raw_size,
sample->time,
thread->comm);
I'd change it to:
scripting_ops->process_event(event, sample, thread);
Or even short circuit it completely modulo debugging, becoming:
static int process_sample_event(union perf_event *event,
struct perf_sample *sample,
struct perf_session *session)
{
if (debug_mode) {
if (sample->time < last_timestamp) {
pr_err("Samples misordered, previous: %" PRIu64
" this: %" PRIu64 "\n", last_timestamp,
sample->time);
nr_unordered++;
}
last_timestamp = sample->time;
} else {
scripting_ops->process_event(event, sample, session);
session->hists.stats.total_period += sample->period;
}
return 0;
}
Script modules may then do their thread accounting if comms are asked
for, etc.
- Arnaldo
next prev parent reply other threads:[~2011-03-01 16:49 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-28 3:52 [PATCH 0/6 v3] perf events: Add realtime clock event, time-of-day strings to script output David Ahern
2011-02-28 3:52 ` [PATCH 1/6] perf events: Introduce realtime clock event David Ahern
2011-02-28 3:52 ` [PATCH 2/6] perf events: plumbing for PERF_SAMPLE_READ and read_format David Ahern
2011-02-28 3:52 ` [PATCH 3/6] perf record: add time-of-day option David Ahern
2011-03-01 14:29 ` Peter Zijlstra
2011-03-01 14:35 ` David Ahern
2011-03-01 15:35 ` Peter Zijlstra
2011-03-01 15:41 ` David Ahern
2011-03-01 16:00 ` Peter Zijlstra
2011-03-01 16:09 ` David Ahern
2011-03-01 16:37 ` Peter Zijlstra
2011-03-01 16:45 ` David Ahern
2011-03-01 17:07 ` Arnaldo Carvalho de Melo
2011-03-01 17:09 ` Arnaldo Carvalho de Melo
2011-03-01 22:28 ` Peter Zijlstra
2011-03-01 22:35 ` David Ahern
2011-03-02 14:16 ` Thomas Gleixner
2011-03-02 14:28 ` David Ahern
2011-03-02 17:28 ` Thomas Gleixner
2011-03-03 14:29 ` David Ahern
2011-03-03 8:51 ` Ingo Molnar
2011-03-03 14:33 ` David Ahern
2011-02-28 3:52 ` [PATCH 4/6] perf script: dump software events too David Ahern
2011-03-01 14:09 ` Frederic Weisbecker
2011-03-01 14:18 ` David Ahern
2011-03-01 15:11 ` Frederic Weisbecker
2011-03-01 16:11 ` David Ahern
2011-03-01 16:24 ` Frederic Weisbecker
2011-03-01 16:49 ` Arnaldo Carvalho de Melo [this message]
2011-02-28 3:52 ` [PATCH 5/6] perf script: Prepend lines with time-of-day string David Ahern
2011-02-28 3:52 ` [PATCH 6/6] perf stat: treat realtime-clock as nsec counter David Ahern
2011-02-28 3:55 ` [PATCH 0/6 v3] perf events: Add realtime clock event, time-of-day strings to script output David Ahern
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=20110301164926.GD26068@ghostprotocols.net \
--to=acme@ghostprotocols.net \
--cc=daahern@cisco.com \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=paulus@samba.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.