Re: Looping Oops

From: rmk@www.linux.org.uk
Date: Wed Dec 06 2000 - 12:23:12 EST


> Aiee, killing interrupt handler
> invalid operand: 0000
> CPU: 0
> EIP: 0010:[<c0113b13>]
> EFLAGS: 00010292
>...
> Aiee, killing interrupt handler
> invalid operand: 0000
> CPU: 0
> EIP: 0010:[<c0113b13>]
> EFLAGS: 00010286

You are not the only one to find this. On the ARM kernels, I have had to
change the printk("Aiee, killing interrupt handler") to be a panic to
prevent this problem. (Note, this is a quick fix, and will catch more
than the case it is meant to).

However, the real question is:

If we enter schedule() from interrupt context due to a bug, we call BUG().
BUG() then causes an oops to be printed, and eventually do_exit() is called.
We then hit the printk("Aiee, killing interrupt handler") in kernel/exit.c
and then re-enter schedule() still in interrupt context. Virtual cookie to
anyone who can guess what happens next ;)

We do need some way of stopping this endless loop - the first occurance
of schedule being called in interrupt context is interesting, the rest
are not, and they just end up causing the real problem to be lost off the
screen.

        Russell K. (from elsewhere)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Dec 07 2000 - 21:00:15 EST