Re: the ppc_n_lost_interrupts thing...
From: Benjamin Herrenschmidt <hidden>
Date: 2000-01-28 10:21:26
On Thu, Jan 27, 2000, Jun Sun [off-list ref] wrote:
I am a newbie to PowerPC-linux. Hopefully this question is not too dumb.
Definitely not ;) Here's my understanding:
From this, I can infer that ppc_n_lost_interrupts is used to "fake" a new interrupt at the end of an interrupt handling.
That's it.
However, what I don't understand is - how could this possibly detect an interrupt that happens while the CPU is blocking external interrupt? In this case, ppc_n_lost_interrupts won't be incremented and when the external interrupt is re-enabled, we won't be able to get into interrupt mode.
The interrupt will be lost only when it's masked in the controller while beeing issued by the device. It's a PIC bug. So, we need to check it out only when unmasking the interrupt -in the controller-. That's what we do in pmac-pic.c. If interrupts are masked on the CPU but not on the controller, they are not lost. If they are masked in both, it's not a problem neither, at least until someone tries to umask one in the controller. Note that our implementation if restore_flags() will check lost_interrupts since the unmask call can be done while MSR_EE is 0. ** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/