Thread (3 messages) flat view 3 messages, 2 authors, 2000-02-02

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/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help