RFC: Performance Monitor Counters device

Rob Latham rob at terizla.org
Sun Sep 15 11:37:21 EST 2002


On Thu, Sep 12, 2002 at 10:03:02PM +0200, Segher Boessenkool wrote:

> Now the questions ;)
>
> 1) What's the best interface for this kind of thing?  A char
>    device?  With ioctl()'s?  a sysctl?  something in /proc?
>    I'm not interested in ease of implementation (I'll have to
>    hack some on gprof too, for this -- so I'm not afraid of
>    the kernel ;) ), but in what's philosophically/technically/
>    procatically the best interface.
> 2) Do we want to be able to profile several tasks (independently
>    from each other) at once?  This will require some bookkeeping
>    and task switch overhead, and is probably not necessary in
>    practice; also, it will degrade the quality of the results some.
> 3) [I'm ashamed I have to ask this...]  Is there a good tutorial
>    to kernel locks somewhere?
> 4) Security: I want to generate most of the settings in userland,
>    for maximum ease of use and ease of implementation; but that
>    brings up some security issues.  Only allowing root to
>    profile code isn't ideal, either.  So:
>    a) Don't automagically load the module; if root loads it, let's
>       hope he knows what he's doing;
>    b) Have the pmc device be accessible only to a 'trusted' group;
>    c) A setuid driver program to start profiling;
>    d) Something much more clever?

it'd be really cool if the performance counter stuff looked like
perfctr  (http://user.it.uu.se/~mikpe/linux/perfctr/). it uses a /dev/
entry.

The nice thing about making it perfctr-like is that it can tie into
oprofile (as mentioned in another reply) and also tie into PAPI
(http://icl.cs.utk.edu/projects/papi/).

PAPI has support for all kinds of performance counters on all sorts of
platforms.  PAPI can be ported to whatever interface you end up
deciding upon: it's just that if it's perfctr-like, the porting
becomes a lot eaiser :>

just my non-hacker two cents.
==rob

--
Rob Latham                                        Woodridge, IL USA

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-dev mailing list