On Tue, Dec 22, 1998 at 11:46:06PM -0500, Thomas Riemer wrote:
> I get a message from mm/fault.c - indicating that I'm
> getting a "page fault from irq handler 0001 " which I traced back
> to in_interrupt() going high - looks like because I'm both in
> a hardware interrupt and in bh handler.
in_interrupt() indicates that you are in an interrupt OR in a bottom half
handler, not in both.
> So now I know that I'm not doing something right - but having
> staired at the code for several hours now I'm drawing an absolute
> blank.
>
> It looks like I'm getting a hardware interrupt for 0001 (DISK I think)
> and that there is bh handler running. Its not clear whether this is
> the disk bh handler or the serial dz handler that's set up. Either
> way its worrisome.
>
> Is there anyway for me to determine which bh handler I'm in?
No, that information is not visible outsid of run_bottom_halfes() in
kernel/softirq.c. It's a trivial function so you could easily add some
debugging code.
In any case the epc of a register dump in do_fault when in_interrupt is
true should point you to the offending instruction, the necessary change
to print such a register dump would be trivial.
Ralf
|