Re: [PATCH 4/4] perf, tools: Add perf stat --transaction v3

From: Arnaldo Carvalho de Melo
Date: Thu Aug 15 2013 - 11:02:04 EST


Em Thu, Aug 15, 2013 at 04:29:25PM +0200, Andi Kleen escreveu:
> > > * Update various tracking values we maintain to print
> > > * more semantic information such as miss/hit ratios,
> > > @@ -283,8 +340,12 @@ static void update_shadow_stats(struct perf_evsel *counter, u64 *count)
> > > update_stats(&runtime_nsecs_stats[0], count[0]);
> > > else if (perf_evsel__match(counter, HARDWARE, HW_CPU_CYCLES))
> > > update_stats(&runtime_cycles_stats[0], count[0]);
> > > - else if (perf_evsel__match(counter, HARDWARE, HW_STALLED_CYCLES_FRONTEND))
> > > - update_stats(&runtime_stalled_cycles_front_stats[0], count[0]);
> >
> > Why remove the test for HW_STALLED_CYCLES_FRONTEND?
>
> Hmm that was probably a merge error.
>
> I'll fix & resend.

Ok

> > Got it why it doesn't need to account for the '{' in the array ;-)
> >
> > While this works and isn't in any fast path, I find it ugly with all
> > this looping in nth_evsel.
> >
> > Why not:
> >
> > } else if (evsel->idx == T_CYCLES_IN_TX)) &&
> >
> > ? I guess this works as you expect, no?
>
> I had some problems with people using -T, but also setting custom
> events, that is why I added the extra comparison

But it'd fail the same, as if you go from the first entry in the
evlist->entries linked list, looping while incrementing a number, that
number should match the nth entry ->idx member.

I'll try to experiment with this when you resend with the parts you
agreed should be changed.

> The event lists are small enough that it's not really noticeable.
> I suppose could set up an array once.

Its not about performance hits, they are negligible, but about using
something that should provide equivalent results.

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/