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.
--=20
WebSig: http://www.jukie.net/~bart/sig/
--llIrKcgUOe3dCx0c
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD4DBQE8mn2ukmD5p7UxHJcRAisJAJ9dGg5d/cPmCp5vCH2KGdUnhOW02gCWIDpk
yMRwqBUG07Ywa9OowYQQMQ==
=nKas
-----END PGP SIGNATURE-----
--llIrKcgUOe3dCx0c--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/