Re: [BUG(?)] perf_events: combining multiple tracepoint events intoa group produces no counts on member events

From: Corey Ashford
Date: Wed Dec 01 2010 - 14:23:20 EST


Thanks for your reply, Peter.

On 12/01/2010 03:46 AM, Peter Zijlstra wrote:
On Tue, 2010-11-30 at 17:00 -0800, Corey Ashford wrote:
Hi,

I'm not sure that what I'm seeing is a bug, or was something intentional.

If I place multiple tracepoint events into a group and measure counts of
these events on a process, I get no counts for the tracepoint events
other than the group leader.

Is this expected behavior?

It's not clear to me why this should be the case; grouping shouldn't
have any ill effects on tracepoint events, from my understanding.

I noticed this because my private version of the perf tool has the event
group patch https://lkml.org/lkml/2010/11/24/584 as well as the patch
which fixes the parsing of multiple tracepoint events in the same -e
switch: https://lkml.org/lkml/2010/11/30/460

When I dig into the code a bit, I find that each event opens
successfully, so that's not the problem. If I disable the grouping,
then I get counts for all of the tracepoint events.

Hrm,.. definitely not expected. I'll try and look into it, but I'm a bit
over-committed atm.

Also, I've started a rewrite of the whole tracepoint<-> perf
interaction:

http://lkml.org/lkml/2010/11/23/147

Could you see if that cures your problem?

I've had some trouble getting recent kernels to boot on my Power5 machine, but I might be able to try it on my laptop.


Another thing to test, does the same hold true for regular software
events? tracepoints and software events share a lot of infrastructure.

I just tried "perf stat -e context-switches,faults ..." on both my laptop (running 2.6.35), and on my Power5 machine (running 2.6.33) and I get the same behavior when software events are grouped, e.g.:
% ./perf stat -e context-switches,faults ~/load 1000

Performance counter stats for '/home/corey/load 1000':

240 context-switches
<not counted> page-faults

2.382022393 seconds time elapsed

So I suppose that points to a common flaw in the tracepoint and software event logic.

With that in mind, would it still make sense to try out your tracepoint patch?

- Corey
--
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/