V68 - what does disjointio do?
John Gonnerman
jcg at tree.UUCP
Tue Jun 27 04:57:41 AEST 1989
In a mail message, ...!texbell!moray!siswat!buck (A. Lester Buck) writes:
I obviously can't tell you where your driver bug is, but I can give you
a pointer in debugging it yourself. The driver is clearly hung
"fast" asleep, sleeping for some interrupt that never comes and at
a priority level that is sufficient to block the receipt of signals
from other processes.
Since you have complete source (it sounds like), you can use the
output of the "ps" command (full listing) which gives the WCHAN
that the process is sleeping for. This is the address that something
in the kernel has to do a wakeup() on to get things moving again.
This is (almost always) a kernel address inside the driver. Just
add a bunch of kernel printf's to the driver so it spits out the
address it is sleeping on before each sleep() in the driver, wait
for a hang, and run ps to find out where the problem is.
The "bug" is probably that the writer said "Oh, that interrupt
will ALWAYS happen, so I don't need a watch-dog timer going to
awaken me if I miss it." Sure....
(I TRIED to mail this... but got it back with a note that site moray
does not exist. So much for R)eply. So, I am posting it, both to
thank Mr. Buck and for the edification of those like me that need this.)
THANX! I needed that help! Yes, we have full source code, but I am not a
kernel hacker. Applications and Administration is hard enough. Yours is the
first reply I have received, and should be very helpful.
--
__ | -- John C. Gonnerman --
\__/ __ | ..!ucbvax!pasteur!ames!pacbell!sactoh0!tree!jcg
\__/ \__/ |
\__ | "THIS is the Age of Magic!"
More information about the Comp.unix.wizards
mailing list