2002-03-22 00:42:55

by Bart Trojanowski

[permalink] [raw]
Subject: 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.

--
WebSig: http://www.jukie.net/~bart/sig/


Attachments:
(No filename) (1.06 kB)
(No filename) (232.00 B)
Download all attachments