[backtrace] (snd_solo) mtx_lock_sleep: recursed on non-recursive mutex

Ion-Mihai Tetcu itetcu at people.tecnik93.com
Wed Nov 30 19:41:22 GMT 2005


Hi,


In my quest to find an other sound card that works with skype, I
salvaged an ESS Solo-1 (ES1938S H209). Trying to play anything through
it results from "pcm channel dead" to hard freezes and ,the last time I
got the panic bellow. Any chance to make it work or should I keep
searching ?


FreeBSD it.buh.tecnik93.com 6.0-STABLE FreeBSD 6.0-STABLE #4: Wed Nov 16 15:38:12 EET 2005

Unread portion of the kernel message buffer:
panic: _mtx_lock_sleep: recursed on non-recursive mutex pcm0 @ /usr/src/sys/modules/sound/sound/../../../dev/sound/pcm/sound.c:381

KDB: stack backtrace:
panic(c066692c,c2e194b0,c07eac3f,17d,c2e1f4c0) at panic+0x13a
_mtx_lock_sleep(c2e1f4c0,c2d08000,0,c07eac3f,17d) at _mtx_lock_sleep+0x131
_mtx_lock_flags(c2e1f4c0,0,c07eac3f,17d,0) at _mtx_lock_flags+0xae
pcm_chn_create(c2d99200,c26b1d80,c07eeac4,2,c26b1d80) at pcm_chn_create+0xb5
vchan_create(c26b1d80,8,c07eac3f,bf,3cb) at vchan_create+0x79
pcm_chnalloc(c2d99200,1,3cb,ffffffff,0) at pcm_chnalloc+0x10c
dsp_open(c2737e00,6,2000,c2d08000,0) at dsp_open+0x20b
giant_open(c2737e00,6,2000,c2d08000,c2737e00) at giant_open+0x4f
devfs_open(ef80ba50,ef80bd04,6) at devfs_open+0x251
VOP_OPEN_APV(c0690540,ef80ba50,c0670b57,ef80ba60,0) at VOP_OPEN_APV+0x73
vn_open_cred(ef80bbc0,ef80bcc0,0,c2d2cb00,3) at vn_open_cred+0x359
vn_open(ef80bbc0,ef80bcc0,0,3,c0679b06) at vn_open+0x33
kern_open(c2d08000,280b99f6,0,6,0) at kern_open+0xd4
open(c2d08000,ef80bd04,c,418,3) at open+0x36
syscall(3b,3b,3b,1021,280b99f6) at syscall+0x13d
Xint0x80_syscall() at Xint0x80_syscall+0x1f
--- syscall (5, FreeBSD ELF32, open), eip = 0x2819a3f7, esp = 0xbfbfe9ec, ebp = 0xbfbfea18 ---
KDB: enter: panic
Dumping 1023 MB (2 chunks)
  chunk 0: 1MB (159 pages) ... ok
  chunk 1: 1023MB (261872 pages) 1007 991 975 959 943 927 911 895 879 863 847 831 815 799 783 767 751 735 719 703 687 671 655 639 623 607 591 575 559 543 527 511 495 479 463 447 431 415 399 383 367 351 335 319 303 287 271 255 239 223 207 191 175 159 143 127 111 95 79 63 47 31 15

#0  doadump () at pcpu.h:165
165     pcpu.h: No such file or directory.
        in pcpu.h
(kgdb) bt
#0  doadump () at pcpu.h:165
#1  0xc04444d7 in db_fncall (dummy1=-276777220, dummy2=0, dummy3=16, dummy4=0xef80b6f4 "ÐÝaÀ\237tfÀ\017ögÀ")
    at /usr/src/sys/ddb/db_command.c:492
#2  0xc0444970 in db_command_loop () at /usr/src/sys/ddb/db_command.c:350
#3  0xc0446794 in db_trap (type=3, code=0) at /usr/src/sys/ddb/db_main.c:221
#4  0xc04f4312 in kdb_trap (type=0, code=0, tf=0xef80b828) at /usr/src/sys/kern/subr_kdb.c:473
#5  0xc0632697 in trap (frame=
      {tf_fs = 8, tf_es = 40, tf_ds = 40, tf_edi = 256, tf_esi = 1, tf_ebp = -276776848, tf_isp = -276776876, tf_ebx = 1, tf_edx = 0, tf_ecx = -1066685504, tf_eax = 18, tf_trapno = 3, tf_err = 0, tf_eip = -1068548478, tf_cs = 32, tf_eflags = 646, tf_esp = -1067019002, tf_ss = -1067027503}) at /usr/src/sys/i386/i386/trap.c:591
#6  0xc06201ca in calltrap () at /usr/src/sys/i386/i386/exception.s:139
#7  0xc04f3e82 in kdb_enter (msg=0x12 <Address 0x12 out of bounds>) at cpufunc.h:60
#8  0xc04d785c in panic (fmt=0x1 <Address 0x1 out of bounds>) at /usr/src/sys/kern/kern_shutdown.c:539
#9  0xc04ce231 in _mtx_lock_sleep (m=0xc2e1f4c0, tid=3268444160, opts=0, file=0x0, line=0) at /usr/src/sys/kern/kern_mutex.c:490
#10 0xc04ce2ee in _mtx_lock_flags (m=0xc2e1f4c0, opts=8,
    file=0xc07eac3f "/usr/src/sys/modules/sound/sound/../../../dev/sound/pcm/sound.c", line=381) at /usr/src/sys/kern/kern_mutex.c:276
#11 0xc07e7425 in ?? ()
#12 0xc2e1f4c0 in ?? ()
.........
---Type <return> to continue, or q <return> to quit---q
Quit
(kgdb) l *0xc04ce2ee
0xc04ce2ee is in _mtx_lock_flags (/usr/src/sys/kern/kern_mutex.c:279).
274             WITNESS_CHECKORDER(&m->mtx_object, opts | LOP_NEWORDER | LOP_EXCLUSIVE,
275                 file, line);
276             _get_sleep_lock(m, curthread, opts, file, line);
277             LOCK_LOG_LOCK("LOCK", &m->mtx_object, opts, m->mtx_recurse, file,
278                 line);
279             WITNESS_LOCK(&m->mtx_object, opts | LOP_EXCLUSIVE, file, line);
280     #ifdef MUTEX_PROFILING
281             /* don't reset the timer when/if recursing */
282             if (m->mtx_acqtime == 0) {
283                     m->mtx_filename = file;


Thanks,

-- 
IOnut - Unregistered ;) FreeBSD "user"
  "Intellectual Property" is   nowhere near as valuable   as "Intellect"

BOFH excuse #379:
We've picked COBOL as the language of choice




More information about the freebsd-multimedia mailing list