Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Sep 2005 04:04:48 +0000
From:      Ben Kaduk <minimarmot@gmail.com>
To:        freebsd-current@freebsd.org
Subject:   panic upon kldunload snd_ich (lor # 159)
Message-ID:  <47d0403c05091121047a037946@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Hi everyone,

I see that this panic is caused by lor #159
http://sources.zabbadoz.net/freebsd/lor.html#159
but I figured I'd report it to see if it will help anyone

Booting to single user and issuing:
# kldload snd_ich
# kldunload snd_ich

are sufficient to trigger the panic on my system. I know that Alexander=20
Leidinger has recently committed some bits to current in the sound code, bu=
t=20
it is unclear if it will fix my panic; I'm currently cvsup-ing and building=
=20
world to find out.

The machine in question is:

bash-2.05b$ uname -a
FreeBSD prolepsis.math.uiuc.edu <http://prolepsis.math.uiuc.edu>;
7.0-CURRENTFreeBSD
7.0-CURRENT #9: Thu Aug 25 06:22:00 UTC 2005
kaduk@prolepsis.math.uiuc.edu:/usr/obj/usr/src/sys/PROLEPSIS
i386

As shown below, I have a core to play with, so if this needs fixing, tell m=
e=20
what I can do to help.

Thanks

Ben Kaduk




prolepsis# kgdb kernel.debug /usr/vmcore.1
[GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so:=
=20
Undefined symbol "ps_pglobal_lookup"]
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you ar=
e
welcome to change it and/or distribute copies of it under certain=20
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd".

Unread portion of the kernel message buffer:
lock order reversal
1st 0xc2d72b00 pcm0 (sound cdev) @=20
/usr/src/sys/modules/sound/sound/../../../dev/sound/pcm/sound.c:713
2nd 0xc2dbbda0 sndstat (sndstat) @=20
/usr/src/sys/modules/sound/sound/../../../dev/sound/pcm/sndstat.c:256
KDB: stack backtrace:
kdb_backtrace(c06ee074,c2dbbda0,c2db6dcf,c2db6dcf,c2db6dd7) at=20
kdb_backtrace+0x2f
witness_checkorder(c2dbbda0,9,c2db6dd7,100,c0723a40) at=20
witness_checkorder+0x6d0
_sx_xlock(c2dbbda0,c2db6dd7,100,0,c2a59a00) at _sx_xlock+0x7f
sndstat_unregister(c2784700,c2b14380,c2db6ed5,2c9,c2784700) at=20
sndstat_unregister+0x27
pcm_unregister(c2784700,ef8fcbfc,c0557ac6,c2d8a820,c2784700) at=20
pcm_unregister+0x112
ich_pci_detach(c2784700,c2bbc050,c0720308,961,c2770bd0) at=20
ich_pci_detach+0x13
device_detach(c2784700,c2d89428,c2784700,c26e9400,c2d8a80c) at=20
device_detach+0x8f
devclass_delete_driver(c26e9400,c2d8a820,1,c2d4eb00,c2d4eb00) at=20
devclass_delete_driver+0x8e
driver_module_handler(c2d4eb00,1,c2d8a80c) at driver_module_handler+0xe7
module_unload(c2d4eb00,0,1fb,0,0) at module_unload+0x61
linker_file_unload(c2d70000,0,c06e8663,327,0) at linker_file_unload+0x89
kern_kldunload(c2e62640,6,0,ef8fcd30,c06ae89d) at kern_kldunload+0x96
kldunloadf(c2e62640,ef8fcd04,8,422,2) at kldunloadf+0x2c
syscall(3b,3b,3b,6,bfbfee22) at syscall+0x295
Xint0x80_syscall() at Xint0x80_syscall+0x1f
--- syscall (444, FreeBSD ELF32, kldunloadf), eip =3D 0x280b6f47, esp =3D=
=20
0xbfbfe8ac, ebp =3D 0xbfbfed18 ---
pcm0: detached
panic: sx_destroy (sndstat): holders or waiters

KDB: enter: panic
Dumping 1023 MB (2 chunks)
chunk 0: 1MB (159 pages) ... ok
chunk 1: 1023MB (261806 pages) 1007 991 975 959 943 927 911 895 879 863 847=
=20
831 815 799 783 767 751 735 719 703 687 671 655 639 623 607 591 575 559 543=
=20
527 511 495 479 463 447 431 415 399 383 367 351 335 319 303 287 271 255 239=
=20
223 207 191 175 159 143 127 111 95 79 63 47 31 15

#0 doadump () at pcpu.h:165
165 __asm __volatile("movl %%fs:0,%0" : "=3Dr" (td));
(kgdb)=20

#0 doadump () at pcpu.h:165
#1 0xc04492fa in db_fncall (dummy1=3D0, dummy2=3D0, dummy3=3D1999,=20
dummy4=3D0xef8fca38 " Tt=C0") at /usr/src/sys/ddb/db_command.c:486
#2 0xc04490a4 in db_command (last_cmdp=3D0xc0744b24, cmd_table=3D0x0,=20
aux_cmd_tablep=3D0xc070d9e4, aux_cmd_tablep_end=3D0xc070d9e8)
at /usr/src/sys/ddb/db_command.c:401
#3 0xc0449195 in db_command_loop () at /usr/src/sys/ddb/db_command.c:452
#4 0xc044b039 in db_trap (type=3D3, code=3D0) at /usr/src/sys/ddb/db_main.c=
:221
#5 0xc055775c in kdb_trap (type=3D0, code=3D0, tf=3D0xef8fcb84)
at /usr/src/sys/kern/subr_kdb.c:473
#6 0xc06adfea in trap (frame=3D
{tf_fs =3D -1066532856, tf_es =3D 40, tf_ds =3D -275840984, tf_edi =3D 1, t=
f_esi =3D=20
-1066488724, tf_ebp =3D -275788852, tf_isp =3D -275788880, tf_ebx =3D -2757=
88796,=20
tf_edx =3D 1, tf_ecx =3D -1052684288, tf_eax =3D 18, tf_trapno =3D 3, tf_er=
r =3D 0,=20
tf_eip =3D -1068141358, tf_cs =3D 32, tf_eflags =3D 646, tf_esp =3D -106648=
1942,=20
tf_ss =3D -1066490330}) at /usr/src/sys/i386/i386/trap.c:601
#7 0xc069c18a in calltrap () at /usr/src/sys/i386/i386/exception.s:139
#8 0xc06e0008 in ?? ()
#9 0x00000028 in ?? ()
#10 0xef8f0028 in ?? ()
#11 0x00000001 in ?? ()
#12 0xc06eac6c in ?? ()
#13 0xef8fcbcc in ?? ()
#14 0xef8fcbb0 in ?? ()
#15 0xef8fcc04 in ?? ()
#16 0x00000001 in ?? ()
#17 0xc1415000 in ?? ()
#18 0x00000012 in ?? ()
#19 0x00000003 in ?? ()
#20 0x00000000 in ?? ()
#21 0xc05574d2 in kdb_enter (msg=3D0x0) at cpufunc.h:60
#22 0xc053b25c in panic (fmt=3D0xc06eac6c "%s (%s): holders or waiters\n")
at /usr/src/sys/kern/kern_shutdown.c:537
#23 0xc05412e2 in sx_destroy (sx=3D0xc2dbbda0) at=20
/usr/src/sys/kern/kern_sx.c:96
#24 0xc2db2adb in ?? ()
#25 0xc2dbbda0 in ?? ()
#26 0xc2db6dd7 in ?? ()
#27 0x00000167 in ?? ()
#28 0xef8fcc50 in ?? ()
#29 0xc052ad83 in linker_file_sysuninit (lf=3D0x0)
at /usr/src/sys/kern/kern_linker.c:238
Previous frame identical to this frame (corrupt stack?)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47d0403c05091121047a037946>