Subject: locking problem on amd64 (w/ lfs)
To: None <current-users@netbsd.org>
From: Kurt Schreiner <ks@ub.uni-mainz.de>
List: current-users
Date: 11/12/2007 12:55:38
Hi,

while compiling userland (w/ -j 8) on my dual-opteron
box running a (customized) kernel compiled from fresh
sources with src- obj- and dest-dirs on lfs the machine
paniced while installing to dest. I can leave it in this
state to pull more info for debugging this if needed...

Kurt


tail of build.sh distribution log:

install ===> usr.sbin/lpr/lpd
    install  /u/NetBSD/arch/amd64/dest/usr/bin/Mail
    install  /u/NetBSD/arch/amd64/dest/usr/bin/mailx
install ===> usr.bin/make
install ===> gnu/usr.bin/gcc4/cc1obj
    install  /u/NetBSD/arch/amd64/dest/usr/sbin/lpd
install ===> usr.bin/make/PSD.doc


and what the console shows:


NetBSD/amd64 (isunopti) (console)

login: Kernel lock error: _kernel_lock: spinout

lock address : 0xffffffff80643ab0 type     :               spin
shared holds :                  0 exclusive:                  1
shares wanted:                  0 exclusive:                  1
current cpu  :                  1 last held:                  0
current lwp  : 0xffff800053f416e0 last held: 0xffff80004fadf340
last locked  : 0xffffffff8029ae21 unlocked : 0xffffffff8029d4cf
initialized  : 0xffffffff802707f9
curcpu holds :                  0 wanted by: 0xffff800053f416e0

panic: LOCKDEBUG
Stopped in pid 3773.1 (x86_64--netbsd-i) at     netbsd:breakpoint+0x1:  ret
db{1}> bt
breakpoint() at netbsd:breakpoint+0x1
lockdebug_abort1() at netbsd:lockdebug_abort1+0x7f
lockdebug_abort() at netbsd:lockdebug_abort+0xa5
_kernel_lock() at netbsd:_kernel_lock+0x12d
uiomove() at netbsd:uiomove+0x16e
ubc_uiomove() at netbsd:ubc_uiomove+0xe0
lfs_write() at netbsd:lfs_write+0x7bd
VOP_WRITE() at netbsd:VOP_WRITE+0x47
vn_write() at netbsd:vn_write+0xfd
dofilewrite() at netbsd:dofilewrite+0x8a
sys_write() at netbsd:sys_write+0xab
syscall() at netbsd:syscall+0x197
db{1}> mach cpu 0
using CPU 0
db{1}> bt
x86_pause() at netbsd:x86_pause+0x2
lfs_writevnodes() at netbsd:lfs_writevnodes+0x1fd
lfs_segwrite() at netbsd:lfs_segwrite+0x23e
lfs_sync() at netbsd:lfs_sync+0xac
sync_fsync() at netbsd:sync_fsync+0x8c
VOP_FSYNC() at netbsd:VOP_FSYNC+0x52
sched_sync() at netbsd:sched_sync+0xe4
db{1}> ps
 PID           PPID     PGRP        UID S   FLAGS LWPS          COMMAND    WAIT
 14617         9209     8456         77 2       0    1               sh
 4520         14136    14136         77 2  0x4000    1              cmp
 13407         9538     8785         77 2  0x4000    1              cmp
 24239         9488    24239         77 2  0x4000    1               sh
 14136         8634    14136         77 2  0x4000    1               sh    wait
 1737         11200    11200         77 2  0x4000    1              cmp
 9209          5752     8456         77 2  0x4000    1               sh    wait
 11200        10255    11200         77 2  0x4000    1               sh    wait
 9414         24084    24084         77 2  0x4000    1 x86_64--netbsd-i lfs_sdi
 24084         6956    24084         77 2  0x4000    1               sh    wait
 15465        19294    19294         77 2  0x4000    1           nbmake
 19294        28154    19294         77 2  0x4000    1               sh    wait
 9488         28433    28433         77 2  0x4000    1           nbmake  select
 28433         5397    28433         77 2  0x4000    1               sh    wait
 6956         21428    21428         77 2  0x4000    1           nbmake  select
>3773         29349    29349         77 2  0x4000    1 x86_64--netbsd-i
 21428        23137    21428         77 2  0x4000    1               sh    wait
 29349         3408    29349         77 2  0x4000    1               sh    wait
 3408         11743    11743         77 2  0x4000    1           nbmake  select
 11743        28154    11743         77 2  0x4000    1               sh    wait
 5752          8456     8456         77 2  0x4000    1           nbmake    pipe
 8456          3675     8456         77 2  0x4000    1               sh    wait
 9538          8785     8785         77 2       0    1               sh    wait
 27354         8785     8785         77 2  0x4000    1             sort    pipe
 8785         16954     8785         77 2  0x4000    1               sh    wait
 3675         19668    19668         77 2  0x4000    1           nbmake  select
 23137        21024    21024         77 2  0x4000    1           nbmake  select
 19668         6873    19668         77 2  0x4000    1               sh    wait
 21024        28338    21024         77 2  0x4000    1               sh    wait
 16954         4577     4577         77 2  0x4000    1           nbmake  select
 4577          6873     4577         77 2  0x4000    1               sh    wait
 28154        26053    26053         77 2  0x4000    1           nbmake  select
 26053        28649    26053         77 2  0x4000    1               sh    wait
 8634         15027    15027         77 2  0x4000    1           nbmake  select
 15027         4933    15027         77 2  0x4000    1               sh    wait
 10255         9501     9501         77 2  0x4000    1           nbmake  select
 9501          4933     9501         77 2  0x4000    1               sh    wait
 4933          1511     1511         77 2  0x4000    1           nbmake  select
 1511          6873     1511         77 2  0x4000    1               sh    wait
 28649        25123    25123         77 2  0x4000    1           nbmake  select
 25123        13614    25123         77 2  0x4000    1               sh    wait
 6873           354      354         77 2  0x4000    1           nbmake  select
 354          23130      354         77 2  0x4000    1               sh    wait
 28338        24312    24312         77 2  0x4000    1           nbmake  select
 5397          6806     6806         77 2  0x4000    1           nbmake  select
 24312        23130    24312         77 2  0x4000    1               sh    wait
 6806         23130     6806         77 2  0x4000    1               sh    wait
 13614         7314     7314         77 2  0x4000    1           nbmake  select
 7314         23130     7314         77 2  0x4000    1               sh    wait
 23130        10099    10099         77 2  0x4000    1           nbmake  select
 10099         5358    10099         77 2  0x4000    1               sh    wait
 5358          6645     6645         77 2  0x4000    1           nbmake  select
 6645          2530     6645         77 2  0x4000    1               sh    wait
 2530         27534    27534         77 2  0x4000    1           nbmake  select
 27534        17742    27534         77 2  0x4000    1               sh    wait
 17742          530     4130         77 2  0x4000    1           nbmake  select
 530          25075     4130         77 2  0x4000    1               sh    wait
 16652        27382     4130         77 2  0x4000    1              tee    pipe
 25075        27382     4130         77 2       0    1               sh    wait
 27382         4130     4130         77 2       0    1               sh    wait
 4130           412     4130         77 2  0x4000    1               sh    wait
 12458         7084    12458         77 2  0x4100    1          sysstat
 7084          7275     7084         77 2  0x4000    1             tcsh   pause
 7275          5184     5184         77 2   0x100    1             sshd  select
 5184           269     5184          0 2  0x4101    1             sshd   netio
 412            410      412         77 2  0x4000    1             tcsh   pause
 410            306      306         77 2   0x100    1             sshd  select
 306            269      306          0 2  0x4101    1             sshd   netio
 329              1      329          0 2  0x4000    1            getty     tty
 415              1      415          0 2  0x4000    1            getty     tty
 342              1      342          0 2  0x4000    1            getty     tty
 403              1      403          0 2  0x4000    1            getty     tty
 411              1      411          0 2       0    1             cron nanoslp
 409            390      390         12 2  0x4100    1             qmgr  kqread
 414            390      390         12 2  0x4100    1           pickup  kqread
 390              1      390          0 2  0x4100    1           master  kqread
 269              1      269          0 2       0    1             sshd  select
 259              1      259         15 2   0x100    1             ntpd
 196              1      196          0 2       0    5             nfsd       *
 184              1      184          0 2       0    1           mountd  select
 157              1      157          0 2       0    1     lfs_cleanerd segment
 113              1      113          0 2       0    1          rpcbind  select
 104              1      104          0 2       0    1          syslogd  kqread
 1                0        1          0 2  0x4001    1             init    wait
 0               -1        0          0 2 0x20002   33           system       *
db{1}>