Q: nesting do_IRQ's
I am running a system that is very heavily loaded with hardware interrupts. At the same time a single user-space app is constantly calling an ioctl to get more data out of the kernel.
After some time (influenced by load) the system dies. Usually the death is in fget and the reason is an overwritten task_struct of the said process.
I have put in tests in my interrupt handler to detect changes in a few words of the task_struct. While the changes are not as interesting I see a lot of nesting of do_IRQ's, call_do_IRQ's, and handle_IRQ_event's. All three are repeated about 10 times (on average) in by kdb back trace.
I have looked at the ebp/esp when I detect the change in the task_struct. They seem to be within safe stack locations. About 2k above the task_struct of my process. While I am fairly certain that it was not my driver that ate the 2k of stack it may be something else.
So here is my question: is what I am seeing correct? Are do_IRQ's nested when the system is getting interrupts very rapidly?
Cheers,
Bart.
Signature · 1 line
WebSig: http://www.jukie.net/~bart/sig/