My understanding from the Alpha HW Ref. Man. and a brief look at the
kernel code is that the PMI comes in through the normal IRQ entry
point on the Alpha. It is a high priority interrupt and only a
machine check (i.e. detected hardware failure) can interrupt the PMU
interrupt handler. I don't know whether that is an issue for taking
locks or not and need advice on that.
I originally based the Alpha implementation on the Sparc
implementation and would've copied the set_perf_event_pending()
definition from the Sparc code, but I now see that newer Sparc code
does not have that definition nor does it call perf_event_do_pending()
in the interrupt handler.
So I need advice on whether to:
1) Just remove the set_perf_event_pending() definition so we are like
the Sparc code,
2) Add perf_event_do_pending() to the tail of the IRQ handler so we
are like the ARM code, or
3) Implement the following suggestion:
Another question is what are the observeable symptoms if an incorrect
option above is implemented?
Regards
Michael.
--