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/

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

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 Latham                                        Woodridge, IL USA

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

More information about the Linuxppc-dev mailing list