pcm timeout (debug output from snd_ich driver)

Don Lewis truckman at FreeBSD.org
Fri Aug 20 12:36:11 PDT 2004


On 18 Aug, Conrad J. Sabatier wrote:
> On Wed, 18 Aug 2004 19:24:58 -0500
> "Conrad J. Sabatier" <conrads at cox.net> wrote:
> 
>> OK, I enabled debug output in the sound driver in the hopes of finding
>> out a little bit more about what's going on with these insufferable
>> pcm timeouts using the snd_ich driver.
> 
> Also, I've been meaning to ask: is there no possibility of somehow
> recovering gracefully from this condition so that the sound device might
> still be useable (similar to the recovery from ata and other timeouts),
> rather than leaving the device flat-out broken?

Only if we know where it is getting lost.

Try adding a three of global integers variables to ich.c.  Increment one
of them on entry to inch_intr(), and increment the others in the area of
the code that calls chn_intr().

			debug2++;
                        if (ch->run) {
                        	debug3++;
                                chn_intr(ch->channel);
                        }

Make the variables readable via sysctl with something like the
following:

SYSCTL_INT(_debug_ich, OID_AUTO, debug1, CTLFLAG_RD,
	&debug1, 0, "Number of times ich_intr() called");


Run the sound code until it hangs, and then use sysctl to see which if
any of these variables continue to increment.






More information about the freebsd-current mailing list