Sorry, but there currently is no support for NMI profiling on MIPS, as you have seen. I will give you a little background as to why this is.
On most cores, the performance counter event count interrupt output is wired thru the external interrupt controller, and fed back to the core as an interrupt. This connection is usually fixed in silicon, so you often would not have the opportunity to rewire
this to NMI. However, on many cores, the routing thru the interrupt controller is flexible, and you can change the interrupt priority. That would be true on the MIPS GIC interrupt controller, if you have that in your core. So you should be able to make this
the highest priority interrupt.
On Linux the intent of the interrupt code is to re-enable interrupts as quickly as possible, and to allow interrupt nesting. So hopefully your other drivers cooperate, and oprofile can sample the other interrupt handlers, if that is where your interest
lies. Of course, since this is a maskable interrupt, you cannot get accurate profiling for code that does disable all interrupts.
If you have a core that you can re-route performance counter interrupt to NMI, it should be possible to write a handler, but it will be a little tricky. The NMI is passed thru a vector very similar to the reset vector, which means you start up in uncached
code, probably in your boot rom. There is some support in Yamon boot loader for passing these events back into Linux, but I am sure you will have to do a bit of very low level coding to get this working.
Hope this helps, and sorry if it was not the news you wanted to hear,
As the title suggest I was wondering whether the oprofile supports NMI on any MIPS cpu variant. I've looke through the linux kernel and I don't see any reference to a nmi there whatsoever (for /arch/mips) as opposed to the x86(for example). Am I missing
something, or there really isn't any support for nmi driven oprofile in the mips architecture?