Re: sound/pcm/* bugs (was: Re: page fault panic tracked down (selwakeuppri()) - really sound/pcm/*)

From: Stefan Ehmann <shoesoft_at_gmx.net>
Date: Wed, 14 Jan 2004 15:13:18 +0100
On Wed, 2004-01-14 at 13:45, Don Lewis wrote:
> On 14 Jan, Stefan Ehmann wrote:
> > No luck - again...
> > 
> > panic: mutex pcm0:fake not owned at
> > /usr/src/sys/dev/sound/pcm/channel.c:834
> > 
> > at boottime
> 
> I suspect something new got built with INVARIANTS and a working
> CHN_LOCKASSERT() for the first time. Try adding a call to CHN_LOCK()
> after the call to chn_lockinit() in chn_init() and a call to
> CHN_UNLOCK() just after the out: label.  These got deleted in rev 1.85,
> though the CHN_UNLOCK() call was in the wrong place in 1.84.

That seems to fix it - boots fine now.

Looks like we need some further locks. When I try to set vchans to 4
with sysctl I get a similar panic.

panic: mutex pcm0:play:0 not owned at
/usr/src/sys/dev/sound/pcm/channel.c:706

#15 0xc04e5b57 in panic () at /usr/src/sys/kern/kern_shutdown.c:550
#16 0xc04dc4fc in _mtx_assert (m=0xc37ba280, what=0, 
    file=0xc07ee3e9 "/usr/src/sys/dev/sound/pcm/channel.c", line=706)
    at /usr/src/sys/kern/kern_mutex.c:673
#17 0xc07e436f in chn_reset (c=0x2c2, fmt=268435472)
    at /usr/src/sys/dev/sound/pcm/channel.c:706
#18 0xc07ed1fa in vchan_create (parent=0xc37a8880)
    at /usr/src/sys/dev/sound/pcm/vchan.c:273
#19 0xc07ecb33 in sysctl_hw_snd_vchans (oidp=0x0, arg1=0xc37c0200,
arg2=4, 
    req=0xd89e1c10) at /usr/src/sys/dev/sound/pcm/sound.c:900
#20 0xc04ef8db in sysctl_root (oidp=0x0, arg1=0xd89e1cac, arg2=4, 
    req=0xd89e1c10) at /usr/src/sys/kern/kern_sysctl.c:1182
#21 0xc04efb6d in userland_sysctl (td=0x0, name=0xd89e1cac, namelen=4, 
    old=0x4, oldlenp=0xd89e1c10, inkernel=0, new=0xd89e1cac, newlen=0, 
    retval=0xd89e1ca8) at /usr/src/sys/kern/kern_sysctl.c:1286
#22 0xc04ef9a0 in __sysctl (td=0x0, uap=0xd89e1d14)
    at /usr/src/sys/kern/kern_sysctl.c:1216
#23 0xc0661d90 in syscall (frame=
      {tf_fs = 47, tf_es = 47, tf_ds = 47, tf_edi = 0, tf_esi = 0,
tf_ebp = -1077943208, tf_isp = -660726412, tf_ebx = 672383596, tf_edx =
-1077943116, tf_ecx = -1077941056, tf_eax = 202, tf_trapno = 12, tf_err
= 2, tf_eip = 671871919, tf_cs = 31, tf_eflags = 659, tf_esp =
-1077943252, tf_ss = 47})
    at /usr/src/sys/i386/i386/trap.c:1010
#24 0xc0652cad in Xint0x80_syscall () at {standard input}:136
Received on Wed Jan 14 2004 - 05:13:31 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:38 UTC