From: Corey Ashford <cjashfor@linux.vnet.ibm.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
Paul Mackerras <paulus@samba.org>,
Frederic Weisbecker <fweisbec@gmail.com>,
Arnaldo Carvalho de Melo <acme@redhat.com>,
Carl Love <carll@us.ibm.com>, Maynard Johnson <mpjohn@us.ibm.com>,
stephane eranian <eranian@googlemail.com>
Subject: Re: [BUG] perf_events: PERF_FORMAT_GROUP not working correctly when monitoring another task
Date: Thu, 06 May 2010 19:40:24 -0700 [thread overview]
Message-ID: <4BE37D98.3000001@linux.vnet.ibm.com> (raw)
In-Reply-To: <1273177360.1642.280.camel@laptop>
On 05/06/2010 01:22 PM, Peter Zijlstra wrote:
> On Thu, 2010-05-06 at 13:09 -0700, Corey Ashford wrote:
>> The patch works with the test case I provided, but for some reason it
>> breaks the normal operation of the libpfm4 "task" utility. If I put
>> more than one event in a group, I get zero counts on all but the first
>> event. That's even if I don't use the PERF_FORMAT_GROUP option.
>
> Bugger,.. weird though, I can't see how it would affect the state before
> the counters get detached from their context (exit() / close()).
>
>> So something appears to be messed up. I will see if I can construct an
>> arch-independent test case which demonstrates the problem.
>
> That would be awesome, thanks!
>
Ok, it was pilot error. We had made a few changes to the "task" program
to expand its capabilities and introduced a couple of bugs at the same time.
Unfortunately, I have one remaining mystery. The default behavior of
task is to create groups, without the PERF_FORMAT_GROUP flag set, and
then read up the counts and time enabled/running values for each counter
in the group after the measurement has occurred.
Well, for some reason I haven't been able to figure out, all but first
event in the group have their time running and time enable values set to
zero, but their counts are non-zero.
If I replicate this setup with the show_fg_bug test case I posted, the
time running and enabled values are correct for each counter.
The enabled and running flag bits are set for every event which is
opened (in both show_fg_bug and task)... so I don't know what the
difference would be.
If anything springs to mind there as to how I might be getting zero
enabled/running values passed back from the kernel, I'd be very
interested to know.
Otherwise, I will keep poking at it till I find the bug in task, or
something I can point at in the kernel.
Thanks,
- Corey
next prev parent reply other threads:[~2010-05-07 2:40 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-04 2:06 [BUG] perf_events: PERF_FORMAT_GROUP not working correctly when monitoring another task Corey Ashford
2010-05-06 15:42 ` Peter Zijlstra
2010-05-06 20:09 ` Corey Ashford
2010-05-06 20:22 ` Peter Zijlstra
2010-05-07 2:40 ` Corey Ashford [this message]
2010-05-07 18:41 ` [tip:perf/core] perf: Fix exit() vs PERF_FORMAT_GROUP tip-bot for Peter Zijlstra
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=4BE37D98.3000001@linux.vnet.ibm.com \
--to=cjashfor@linux.vnet.ibm.com \
--cc=acme@redhat.com \
--cc=carll@us.ibm.com \
--cc=eranian@googlemail.com \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mpjohn@us.ibm.com \
--cc=paulus@samba.org \
--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.