NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/42849: 32 ppbs causes a lockdebug panic during vmware boot of current
>Number: 42849
>Category: kern
>Synopsis: 32 ppbs causes a lockdebug panic during vmware boot of current
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Feb 19 22:50:01 +0000 2010
>Originator: Darran Hunt
>Release: current
>Organization:
CoyotePoint Systems
>Environment:
NetBSD 5.99.24 NetBSD 5.99.24 (GENERIC_LOCKDEBUG) #1: Sat Feb 20 11:35:06 NZDT
2010
darran@bsd:/home/darran/build/current.dtrace/nbobj/sys/arch/i386/compile/GENERIC_LOCKDEBUG
i386
>Description:
The boot panics after enumerating the 32nd ppb:
ppb31 at pci0 dev 24 function 5: vendor 0x15ad product 0x07a0 (rev. 0x01)
ppb31: unsupported PCI Express version
Mutex error: lockdebug_barrier: spin lock held
lock address : 0x00000000c0b2a08c type : spin
initialized : 0x00000000c062eb2b
shared holds : 0 exclusive: 1
shares wanted: 0 exclusive: 0
current cpu : 0 last held: 0
current lwp : 0x00000000c0adf2e0 last held: 0x00000000c0adf2e0
last locked : 0x00000000c062df83 unlocked : 0x00000000c062df59
owner field : 0x0000000000010600 wait/spin: 0/1
panic: LOCKDEBUG
fatal breakpoint trap in supervisor mode
trap type 1 code 0 eip c0246cb4 cs 8 eflags 246 cr2 0 ilevel 8
Stopped in pid 0.1 (system) at netbsd:breakpoint+0x4: popl %ebp
kgdb backtrace:
#0 0xc0246cb4 in breakpoint ()
#1 0xc064142e in panic (fmt=0xc0a51412 "LOCKDEBUG")
at /home/darran/dev/current.dtrace/src/sys/kern/subr_prf.c:299
#2 0xc063921b in lockdebug_abort1 (ld=0xca997044, s=8, func=0xc09c2ca8
"lockdebug_barrier",
msg=0xc0a5142b "spin lock held", dopanic=true)
at /home/darran/dev/current.dtrace/src/sys/kern/subr_lockdebug.c:777
#3 0xc04c9533 in mutex_vector_enter (mtx=0xc16c0800)
at /home/darran/dev/current.dtrace/src/sys/kern/kern_mutex.c:506
#4 0xc06441a0 in vmem_xfree (vm=0xc16c0800, addr=3404795448, size=133)
at /home/darran/dev/current.dtrace/src/sys/kern/subr_vmem.c:1062
#5 0xc06371c9 in kmem_free (p=0xcaf10e38, size=132)
at /home/darran/dev/current.dtrace/src/sys/kern/subr_kmem.c:279
#6 0xc062e094 in config_devalloc (parent=0xcaf59204, cf=0xc0a79950, locs=0x0)
at /home/darran/dev/current.dtrace/src/sys/kern/subr_autoconf.c:1001
#7 0xc062e49c in config_attach_loc (parent=0xcaf59204, cf=0xc0a79950,
locs=0x0, aux=0xc0c8f85c,
print=0xc0569e40 <pcibusprint>) at
/home/darran/dev/current.dtrace/src/sys/kern/subr_autoconf.c:1256
#8 0xc062e852 in config_found_ia (parent=0xcaf59204, ifattr=0xc09dbc46
"pcibus", aux=0xc0c8f85c,
print=0xc0569e40 <pcibusprint>) at
/home/darran/dev/current.dtrace/src/sys/kern/subr_autoconf.c:913
#9 0xc05854f9 in ppbattach (parent=0xcac77c3c, self=0xcaf59204, aux=0xc0c8f9fc)
at /home/darran/dev/current.dtrace/src/sys/dev/pci/ppb.c:157
#10 0xc062e616 in config_attach_loc (parent=0xcac77c3c, cf=<value optimized
out>, locs=0xc0c8fa38,
aux=0xc0c8f9fc, print=0xc0565270 <pciprint>)
at /home/darran/dev/current.dtrace/src/sys/kern/subr_autoconf.c:1312
#11 0xc0565022 in pci_probe_device (sc=0xcac73004, tag=
{mode1 = 2147534080, mode2 = {port = 50432, enable = 0 '\0', forward =
128 '\200'}}, match=0, pap=0x0)
at /home/darran/dev/current.dtrace/src/sys/dev/pci/pci.c:372
>How-To-Repeat:
Build a GENERIC kernel with LOCKDEBUG enabled. Boot it in vmware (vmware
fusion 2.0 machine running on OS X 10.5).
>Fix:
As a work-around, modifying the kernel config to reduce the number of ppbs by
one stops the problem occuring.
That is, add the following to the config file:
no ppb
ppb0 at pci? dev ? function ?
ppb1 at pci? dev ? function ?
ppb2 at pci? dev ? function ?
ppb3 at pci? dev ? function ?
ppb4 at pci? dev ? function ?
...
ppb29 at pci? dev ? function ?
ppb30 at pci? dev ? function ?
#ppb31 at pci? dev ? function ?
Home |
Main Index |
Thread Index |
Old Index