All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Richter <robert.richter@amd.com>
To: David Ahern <dsahern@gmail.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@elte.hu>,
	Stephane Eranian <eranian@google.com>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 4/4] perf script: Add script to collect and display IBS samples
Date: Fri, 16 Dec 2011 00:47:28 +0100	[thread overview]
Message-ID: <20111215234727.GJ15738@erda.amd.com> (raw)
In-Reply-To: <4EEA4827.2000302@gmail.com>

On 15.12.11 12:19:03, David Ahern wrote:

> > +sub process_event
> > +{
> > +	my ($event, $attr, $sample, $raw_data) = @_;
> > +
> > +	my ($type)		= (unpack("LSS", $event))[0];
> > +	my ($sample_type)	= (unpack("LLQQQQQLLQQ", $attr))[4];
> > +	my ($cpu, $raw_size)	= (unpack("QLLQQQQQLL", $sample))[8, 9];
> > +	my ($caps, @ibs_data)	= unpack("LQ*", $raw_data);
> > +
> > +	return if (!$raw_size);		# no raw data
> > +
> > +	if (scalar(@ibs_data) ==  3) {
> > +	        printf("IBS_FETCH sample on cpu%d\tIBS0: 0x%016x IBS1: 0x%016x IBS2:0x%016x\n",
> > +		       $cpu, @ibs_data);
> > +	} else {
> > +	        printf("IBS_OP sample on cpu%d\t" .
> > +		       "\t IBS0: 0x%016x IBS1: 0x%016x IBS2: 0x%016x\n" .
> > +		       "\tIBS3: 0x%016x IBS4: 0x%016x IBS5: 0x%016x IBS6: 0x%016x\n",
> > +		       cpu, @ibs_data);
> > +	}
> > +}
> 
> Doesn't seem like you are verifying that the tracepoints fed to this
> script are actually ibs related. For example, if a user points to the
> wrong perf.data which has raw data in it this script would happily parse
> and display numbers.

For 'perf script ibs' and 'perf script record ibs' this does not
matter as the builtin perf record wrapper is used that always creates
ibs data. For 'perf script report ibs' the perf.data file is not
checked for valid ibs samples. In case you point to a wrong file your
report will be wrong too. I don't think this is an issue for this
initial version. The pmu mapping is already in the header so
implementing a check is generally possible.

> Also, why a perl script versus the builtin dumping capability of
> perf-script? e.g., add ibs to the fields and while processing the event
> verify that the tracepoint is ibs related.

IBS samples are not tracepoints but some special kind of hardware
event. It would be hard to reuse the tracing framework for this. Also,
the parser above is intended to be a reference implementation of how
to generate and decode ibs samples. It should be the basis for
customized scripts to extract information from ibs data.

-Robert

-- 
Advanced Micro Devices, Inc.
Operating System Research Center


  reply	other threads:[~2011-12-15 23:47 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-15 17:23 [PATCH 0/4] perf tools: Add support for IBS Robert Richter
2011-12-15 17:23 ` [PATCH 1/4] perf tool: Parse general/raw events from sysfs Robert Richter
2011-12-21 16:52   ` Robert Richter
2012-01-02 11:07   ` Stephane Eranian
2011-12-15 17:23 ` [PATCH 2/4] perf tools: Add pmu mappings to header information Robert Richter
2011-12-15 17:23 ` [PATCH 3/4] perf script: Add generic perl handler to process events Robert Richter
2011-12-29 20:56   ` [tip:perf/core] " tip-bot for Robert Richter
2011-12-15 17:23 ` [PATCH 4/4] perf script: Add script to collect and display IBS samples Robert Richter
2011-12-15 19:19   ` David Ahern
2011-12-15 23:47     ` Robert Richter [this message]
2011-12-23 10:33   ` Ingo Molnar
2011-12-23 11:19     ` Robert Richter
2011-12-23 13:53       ` Ingo Molnar
2011-12-23 14:14         ` Peter Zijlstra
2011-12-23 14:40           ` Ingo Molnar
2011-12-23 16:17             ` Robert Richter
2011-12-23 16:39               ` Ingo Molnar
2011-12-23 16:50                 ` Robert Richter
2011-12-30  9:55                   ` Ingo Molnar
2012-02-02 11:21                     ` Robert Richter
2012-03-08 12:19                       ` Ingo Molnar
2012-03-09 11:41                         ` Robert Richter
2012-03-21 18:13                           ` Robert Richter
2012-03-22  7:51                             ` Ingo Molnar

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=20111215234727.GJ15738@erda.amd.com \
    --to=robert.richter@amd.com \
    --cc=acme@redhat.com \
    --cc=dsahern@gmail.com \
    --cc=eranian@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=peterz@infradead.org \
    /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.