Perfctr (http://user.it.uu.se/~mikpe/linux/perfctr/) and PAPI (http://icl.cs.utk.edu/papi/) are precisely such attempts. Except that MIPS ports of them do not seem to be available. regards, Prasad. On 6/13/06, Jonathan Day <imipak@xxxxxxxxx> wrote:
Thank you for the valuable information. One thing I'd like to throw open to the list: there's one way to access the counters on the R4000-type processors, another on the version 2 MIPS64, yet another on the ix86, and so on. Would it make sense to place some standardised interface in, say, the assembly header files and hide the implementation-specific details? In the case of the R4000-type cores, this would need to involve some sort of counter device in the kernel which the macro would call to perform the priviledged instruction. (It feels a little bit of a hack, but it's the simplest way to provide access to resources that aren't made public.) What I'm thinking is that this generic interface would then be used on all other architectures, where such counters exist. That way, implementation-specific stuff can be abstracted out and programs that need access to performance counters can all be coded to a generic interface, rather than one interface for each version of every CPU API, which is inevitably going to be far more prone to error. Jonathan