[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7c86c4470905291349icb3fc03wa87d7e5c1069eaf4@mail.gmail.com>
Date: Fri, 29 May 2009 22:49:48 +0200
From: stephane eranian <eranian@...glemail.com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: LKML <linux-kernel@...r.kernel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...e.hu>,
Robert Richter <robert.richter@....com>,
Paul Mackerras <paulus@...ba.org>,
Andi Kleen <andi@...stfloor.org>,
Maynard Johnson <mpjohn@...ibm.com>,
Carl Love <cel@...ibm.com>,
Corey J Ashford <cjashfor@...ibm.com>,
Philip Mucci <mucci@...s.utk.edu>,
Dan Terpstra <terpstra@...s.utk.edu>,
perfmon2-devel <perfmon2-devel@...ts.sourceforge.net>
Subject: Re: comments on Performance Counters for Linux (PCL)
On Fri, May 29, 2009 at 10:32 PM, Peter Zijlstra <peterz@...radead.org> wrote:
> On Thu, 2009-05-28 at 18:25 +0200, Peter Zijlstra wrote:
>> > 10/ Group event buffer entry
>> >
>> > This is activated by setting the PERF_RECORD_GROUP in the record_type
>> > field. With this bit set, the values of the other members of the
>> > group are stored sequentially in the buffer. To help figure out which
>> > value corresponds to which event, the current implementation also
>> > stores the raw encoding of the event.
>> >
>> > The event encoding does not help figure out which event the value refers
>> > to. There can be multiple events with the same code. This does fit the
>> > API model where events are identified by file descriptors.
>> >
>> > The file descriptor must be provided and not the raw encoding.
>>
>> OK, sounds sensible.
>
> This can't actually be done, fds can change, and there is no struct
> file* to fd map.
The API must define an order in which values are stored. Otherwise
how would the application figure out what they correspond to in the
group.
Explain to me what you mean by fds can change. Are you thinking
about dup()+close() for instance?
> If the config isn't good enough, the best we could do is something
> unique per instance.
>
Config isn't good enough for sure. For instance, I could be sampling
the same generic PERF_CPU_COUNT_CYCLES twice in the same
group, once at the user level only (exclude_kernel=1), and once at
the kernel level only (exclude_user=1), but the two config values
would be identical.
If there is no backmapping, then you could get by perhaps by having
the API guarantee that values are stored in the order events were
originally chained in the group. If that does not work, then you need
to emit a unique cookie per fd and let the application maintain a mapping
table.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists