kern/135692: [mtx] [witness] blockable sleep lock - kernel panic on 8.0-CURRENT

Adam K Kirchhoff adamk at voicenet.com
Thu Jun 18 21:38:22 UTC 2009


asf -ks `sysctl -n kern.module_path` kernel.asf

worked without any errors.  It created /root/kernel.asf:

[ root at sorrow - ~ ]: ls -l /root/kernel.asf
-rw-r--r--  1 root  wheel  1067 Jun 18 17:13 /root/kernel.asf

But when I try to add it in kgdb, this is what I get:

(kgdb) add-symbol-file /root/kernel.asf
add symbol table from file "/root/kernel.asf" at
(y or n) y
"/root/kernel.asf": can't read symbols: File format not recognized.

However, I got the gist of things and simply copied and pasted each line 
of the kernel.asf file into kgdb.  It adds the symbols for each module 
without any errors.  'bt full' however, only returns a few lines:

Here's the full output from kgdb:

[ root at sorrow - ~ ]: kgdb /boot/kernel/kernel /var/crash/vmcore.7
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 are
welcome to change it and/or distribute copies of it under certain 
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:
panic: blockable sleep lock (sleep mutex) 32 @ 
/usr/src/sys/vm/uma_core.c:1990
cpuid = 2
KDB: enter: panic
Uptime: 1h57m3s
Physical memory: 2029 MB
Dumping 252 MB: 237 221 205 189 173 157 141 125 109 93 77 61 45 29 13

Reading symbols from /boot/kernel/linux.ko...Reading symbols from 
/boot/kernel/linux.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/linux.ko
Reading symbols from /boot/kernel/snd_hda.ko...Reading symbols from 
/boot/kernel/snd_hda.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/snd_hda.ko
Reading symbols from /boot/kernel/sound.ko...Reading symbols from 
/boot/kernel/sound.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/sound.ko
Reading symbols from /boot/kernel/accf_http.ko...Reading symbols from 
/boot/kernel/accf_http.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/accf_http.ko
Reading symbols from /boot/kernel/aio.ko...Reading symbols from 
/boot/kernel/aio.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/aio.ko
Reading symbols from /boot/modules/kqemu.ko...done.
Loaded symbols for /boot/modules/kqemu.ko
Reading symbols from /boot/kernel/linprocfs.ko...Reading symbols from 
/boot/kernel/linprocfs.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/linprocfs.ko
Reading symbols from /boot/kernel/smbfs.ko...Reading symbols from 
/boot/kernel/smbfs.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/smbfs.ko
Reading symbols from /boot/kernel/libiconv.ko...Reading symbols from 
/boot/kernel/libiconv.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/libiconv.ko
Reading symbols from /boot/kernel/libmchain.ko...Reading symbols from 
/boot/kernel/libmchain.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/libmchain.ko
Reading symbols from /boot/kernel/radeon.ko...Reading symbols from 
/boot/kernel/radeon.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/radeon.ko
Reading symbols from /boot/kernel/drm.ko...Reading symbols from 
/boot/kernel/drm.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/drm.ko
Reading symbols from /boot/modules/vboxdrv.ko...done.
Loaded symbols for /boot/modules/vboxdrv.ko
#0  doadump () at pcpu.h:246
246    pcpu.h: No such file or directory.
    in pcpu.h
(kgdb) add-symbol-file /boot/kernel/linux.ko.symbols 0xc10f2a90 -s .data 
0xc110c000 -s .bss 0xc110ed54
add symbol table from file "/boot/kernel/linux.ko.symbols" at
    .text_addr = 0xc10f2a90
    .data_addr = 0xc110c000
    .bss_addr = 0xc110ed54
(y or n) y
Reading symbols from /boot/kernel/linux.ko.symbols...done.
(kgdb) add-symbol-file /boot/kernel/snd_hda.ko.symbols 0xc111c740 -s 
.data 0xc112fb20 -s .bss 0xc112ff3c
add symbol table from file "/boot/kernel/snd_hda.ko.symbols" at
    .text_addr = 0xc111c740
    .data_addr = 0xc112fb20
    .bss_addr = 0xc112ff3c
(y or n) y
Reading symbols from /boot/kernel/snd_hda.ko.symbols...done.
(kgdb) add-symbol-file /boot/kernel/sound.ko.symbols 0xc1148fb0 -s .data 
0xc117f000 -s .bss 0xc1189a20
add symbol table from file "/boot/kernel/sound.ko.symbols" at
    .text_addr = 0xc1148fb0
    .data_addr = 0xc117f000
    .bss_addr = 0xc1189a20
(y or n) y
Reading symbols from /boot/kernel/sound.ko.symbols...done.
(kgdb) add-symbol-file /boot/kernel/accf_http.ko.symbols 0xc11956b0 -s 
.data 0xc1196ca0 -s .bss 0xc1196e24
add symbol table from file "/boot/kernel/accf_http.ko.symbols" at
    .text_addr = 0xc11956b0
    .data_addr = 0xc1196ca0
    .bss_addr = 0xc1196e24
(y or n) y
Reading symbols from /boot/kernel/accf_http.ko.symbols...done.
(kgdb) add-symbol-file /boot/kernel/linprocfs.ko.symbols 0xc5c9d9f0 -s 
.data 0xc5ca2480 -s .bss 0xc5ca2740
add symbol table from file "/boot/kernel/linprocfs.ko.symbols" at
    .text_addr = 0xc5c9d9f0
    .data_addr = 0xc5ca2480
    .bss_addr = 0xc5ca2740
(y or n) y
Reading symbols from /boot/kernel/linprocfs.ko.symbols...done.
(kgdb) add-symbol-file /boot/kernel/smbfs.ko.symbols 0xc5e9d170 -s .data 
0xc5eb43c0 -s .bss 0xc5eb4de0
add symbol table from file "/boot/kernel/smbfs.ko.symbols" at
    .text_addr = 0xc5e9d170
    .data_addr = 0xc5eb43c0
    .bss_addr = 0xc5eb4de0
(y or n) y
Reading symbols from /boot/kernel/smbfs.ko.symbols...done.
(kgdb) add-symbol-file /boot/kernel/libiconv.ko.symbols 0xc5eb6250 -s 
.data 0xc5eb87e0 -s .bss 0xc5eb8c4c
add symbol table from file "/boot/kernel/libiconv.ko.symbols" at
    .text_addr = 0xc5eb6250
    .data_addr = 0xc5eb87e0
    .bss_addr = 0xc5eb8c4c
(y or n) y
Reading symbols from /boot/kernel/libiconv.ko.symbols...done.
(kgdb) add-symbol-file /boot/kernel/libmchain.ko.symbols 0xc5f3c640 -s 
.data 0xc5f3e410 -s .bss 0xc5f3e4a8
add symbol table from file "/boot/kernel/libmchain.ko.symbols" at
    .text_addr = 0xc5f3c640
    .data_addr = 0xc5f3e410
    .bss_addr = 0xc5f3e4a8
(y or n) y
Reading symbols from /boot/kernel/libmchain.ko.symbols...done.
(kgdb) add-symbol-file /boot/modules/vboxdrv.ko 0xc6072b30 -s .data 
0xc608d000 -s .bss 0xc608eb00
add symbol table from file "/boot/modules/vboxdrv.ko" at
    .text_addr = 0xc6072b30
    .data_addr = 0xc608d000
    .bss_addr = 0xc608eb00
(y or n) y
Reading symbols from /boot/modules/vboxdrv.ko...done.
(kgdb) add-symbol-file /boot/kernel/radeon.ko.symbols 0xc6563b60 -s 
.data 0xc65b6440 -s .bss 0xc65b7d20
add symbol table from file "/boot/kernel/radeon.ko.symbols" at
    .text_addr = 0xc6563b60
    .data_addr = 0xc65b6440
    .bss_addr = 0xc65b7d20
(y or n) y
Reading symbols from /boot/kernel/radeon.ko.symbols...done.
(kgdb) add-symbol-file /boot/kernel/drm.ko.symbols 0xc65c08b0 -s .data 
0xc65ce580 -s .bss 0xc65cf6a4
add symbol table from file "/boot/kernel/drm.ko.symbols" at
    .text_addr = 0xc65c08b0
    .data_addr = 0xc65ce580
    .bss_addr = 0xc65cf6a4
(y or n) y
Reading symbols from /boot/kernel/drm.ko.symbols...done.
(kgdb) bt full
#0  doadump () at pcpu.h:246
No locals.
#1  0xc0870a8e in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:419
    _giantcnt = Variable "_giantcnt" is not available.


So 'bt full' only gives me the giantcnt error.  Just a regular 'bt' 
gives me the same output I posted in my pr.

Am I doing something wrong?

I can possibly try a -CURRENT kernel without invariants in the next day 
or two, if you think that will make a difference, or just want to 
confirm your thought.

Adam



More information about the freebsd-bugs mailing list