public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@redhat.com>
To: Jiri Olsa <jolsa@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>,
	linux-kernel@vger.kernel.org, Andi Kleen <ak@linux.intel.com>,
	Corey Ashford <cjashfor@linux.vnet.ibm.com>,
	David Ahern <dsahern@gmail.com>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Ingo Molnar <mingo@kernel.org>,
	Matt Fleming <matt.fleming@intel.com>,
	Namhyung Kim <namhyung@kernel.org>,
	Paul Mackerras <paulus@samba.org>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	acme@kernel.org, Stephane Eranian <eranian@google.com>
Subject: Re: [PATCH 04/11] perf stat: Use perf_evsel__read_cb in read_counter
Date: Tue, 25 Nov 2014 16:38:21 -0200	[thread overview]
Message-ID: <20141125183821.GD2442@redhat.com> (raw)
In-Reply-To: <20141125093633.GC30861@krava.brq.redhat.com>

Em Tue, Nov 25, 2014 at 10:36:33AM +0100, Jiri Olsa escreveu:
> On Mon, Nov 24, 2014 at 06:35:33PM -0200, Arnaldo Carvalho de Melo wrote:
> > Em Fri, Nov 21, 2014 at 10:31:08AM +0100, Jiri Olsa escreveu:
> > > Replacing __perf_evsel__read_on_cpu function with perf_evsel__read_cb
> > > function. The read_cb callback will be used later for global aggregation
> > > counter values as well.
> > 
> > But the changeset makes it look like there are no changes made... Can
> > you elaborate here?
> 
> well the patch change the 'read_counter' function to use the
> perf_evsel__read_cb instead of __perf_evsel__read_on_cpu

That part is ok with me, matches what the subject states it does. The
part I thought was out of place is the SNIP part ;-)
 
> SNIP

This one:


> +static int read_cb(struct perf_evsel *evsel, int cpu, int thread __maybe_unused,
> +                struct perf_counts_values *count)
> +{
> +     switch (aggr_mode) {
> +     case AGGR_CORE:
> +     case AGGR_SOCKET:
> +     case AGGR_NONE:
> +             perf_evsel__compute_deltas(evsel, cpu, count);
> +             perf_counts_values__scale(count, scale, NULL);
> +             evsel->counts->cpu[cpu] = *count;
> +             update_shadow_stats(evsel, count->values);
> +             break;
> +     case AGGR_GLOBAL:
> +     default:
> +             break;
> +     }
> +
> +     return 0;

While the original code did a update_shadow_stats(...), the code that replaces
it calls perf_evsel__compute_deltas(), etc in addition to updating the shadow
stats.

Ok, I see, __perf_evsel__read_on_cpu() does that... my bad, will re-read it
with this in mind, but even then, now we have to make sure
perf_evsel__alloc_counts() was called before this, and also the original code
did it for all AGGR_ modes, will check.

- Arnaldo
 
> > > +
> > >  /*
> > >   * Read out the results of a single counter:
> > >   * aggregate counts across CPUs in system-wide mode
> > > @@ -424,16 +444,11 @@ static int read_counter_aggr(struct perf_evsel *counter)
> > >   */
> > >  static int read_counter(struct perf_evsel *counter)
> > >  {
> > > -	u64 *count;
> > >  	int cpu;
> > >  
> > >  	for (cpu = 0; cpu < perf_evsel__nr_cpus(counter); cpu++) {
> > > -		if (__perf_evsel__read_on_cpu(counter, cpu, 0, scale) < 0)
> > > +		if (perf_evsel__read_cb(counter, cpu, 0, read_cb))
> 
> right here ^^^
> 
> > >  			return -1;
> > > -
> > > -		count = counter->counts->cpu[cpu].values;
> > > -
> > > -		update_shadow_stats(counter, count);
> > >  	}
> > >  
> > >  	return 0;
> > > -- 
> > > 1.9.3

  reply	other threads:[~2014-11-25 19:38 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-21  9:31 [RFC 00/11] perf tools: Factor stat reading and CQM changes Jiri Olsa
2014-11-21  9:31 ` [PATCH 01/11] perf tools: Introduce perf_evsel__compute_deltas function Jiri Olsa
2014-12-08  6:50   ` [tip:perf/core] perf evsel: " tip-bot for Jiri Olsa
2014-11-21  9:31 ` [PATCH 02/11] perf tools: Introduce perf_counts_values__scale function Jiri Olsa
2014-12-08  6:50   ` [tip:perf/core] perf evsel: " tip-bot for Jiri Olsa
2014-11-21  9:31 ` [PATCH 03/11] perf tools: Introduce perf_evsel__read_cb function Jiri Olsa
2014-12-08  6:50   ` [tip:perf/core] perf evsel: " tip-bot for Jiri Olsa
2014-11-21  9:31 ` [PATCH 04/11] perf stat: Use perf_evsel__read_cb in read_counter Jiri Olsa
2014-11-24 20:35   ` Arnaldo Carvalho de Melo
2014-11-25  9:36     ` Jiri Olsa
2014-11-25 18:38       ` Arnaldo Carvalho de Melo [this message]
2014-12-08  6:51   ` [tip:perf/core] " tip-bot for Jiri Olsa
2014-11-21  9:31 ` [PATCH 05/11] perf stat: Make read_counter work over the thread dimension Jiri Olsa
2014-12-08  6:51   ` [tip:perf/core] " tip-bot for Jiri Olsa
2014-11-21  9:31 ` [PATCH 06/11] perf stat: Use read_counter in read_counter_aggr Jiri Olsa
2014-12-08  6:52   ` [tip:perf/core] " tip-bot for Jiri Olsa
2014-11-21  9:31 ` [PATCH 07/11] perf tools: Remove perf_evsel__read interface Jiri Olsa
2014-12-08  6:52   ` [tip:perf/core] " tip-bot for Jiri Olsa
2014-11-21  9:31 ` [PATCH 08/11] perf tools: Add per-pkg format file parsing Jiri Olsa
2014-12-08  6:51   ` [tip:perf/core] " tip-bot for Matt Fleming
2014-11-21  9:31 ` [PATCH 09/11] perf tools: Add snapshot " Jiri Olsa
2014-12-08  6:51   ` [tip:perf/core] " tip-bot for Jiri Olsa
2014-11-21  9:31 ` [PATCH 10/11] perf stat: Add support for per-pkg counters Jiri Olsa
2014-12-08  6:52   ` [tip:perf/core] " tip-bot for Jiri Olsa
2014-11-21  9:31 ` [PATCH 11/11] perf stat: Add support for snapshot counters Jiri Olsa
2014-12-08  6:52   ` [tip:perf/core] " tip-bot for Jiri Olsa
2014-11-21  9:35 ` [RFC 00/11] perf tools: Factor stat reading and CQM changes Jiri Olsa

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=20141125183821.GD2442@redhat.com \
    --to=acme@redhat.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@kernel.org \
    --cc=ak@linux.intel.com \
    --cc=cjashfor@linux.vnet.ibm.com \
    --cc=dsahern@gmail.com \
    --cc=eranian@google.com \
    --cc=fweisbec@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt.fleming@intel.com \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=paulus@samba.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox