Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!bionet!ames!pacbell!sactoh0!tree!jcg From: jcg@tree.UUCP (John Gonnerman) Newsgroups: comp.unix.wizards Subject: Re: V68 - what does disjointio do? Keywords: thanks Message-ID: <333@tree.UUCP> Date: 26 Jun 89 18:57:41 GMT Distribution: usa Organization: TREE BBS (916)-349-0385 Sacramento, Ca Lines: 35 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!"