Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
unexplained hang
Feb 18 10:45 GMT 4.99.54/i386 kernel, without debug/diagnostic/lockdebug (as
kernels built with those options seem to be fine), on a hyperthreading P4,
all hung during a little peak in disk access, though ddb was happy.
Is it a problem for a v_interlock to be zero after a mutex_enter?
I hope I reached the right conclusion in the attachment, cf
sys/ufs/ufs/ufs_readwrite.c:WRITE(), every VOP_PUTPAGES is preceded by a
mutex_enter(&vp->v_interlock);
sys/vnode.h:
#define v_interlock v_uobj.vmobjlock
struct vnode {
struct uvm_object v_uobj; /* i: the VM object */
...
uvm/uvm_object.:
struct uvm_object {
kmutex_t vmobjlock; /* lock on memq */
...
and vmobjlock=0?
Cheers,
Patrick
Stopped in pid 0.4 (system) at netbsd:breakpoint+0x4: popl %ebp
db{0}> ps
PID PPID PGRP UID S FLAGS LWPS COMMAND WAIT
28957 18609 4774 2171 2 0x4000 1 rm
18609 519 4774 2171 2 0x4000 1 ksh pause
519 23459 4774 2171 2 0x4000 1 sh wait
11467 1900 11467 2171 2 0x4000 1 csh tty
1900 1 4616 2171 2 0x4100 1 xterm select
21555 6862 21555 2171 2 0x4000 1 psql tty
6862 14488 6862 2171 2 0x4000 1 csh pause
14488 1 4616 2171 2 0x4100 1 xterm select
5337 12837 5337 2171 2 0x4000 1 lynx tty
12837 1158 12837 2171 2 0x4000 1 csh pause
1158 1 4616 2171 2 0x4100 1 xterm select
23459 25440 4774 2171 2 0x4000 1 ksh pause
25440 12670 4774 2171 2 0x4000 1 gmake wait
12670 8137 4774 2171 2 0x4000 1 ksh pause
8137 7498 4774 2171 2 0x4000 1 gmake wait
7498 5343 4774 2171 2 0 1 ksh pause
5343 4774 4774 2171 2 0x4000 1 ksh pause
4774 12909 4774 2171 2 0x4000 1 gmake wait
25870 6665 9376 2171 2 0x4001 1 firefox-bin select
6665 9376 9376 2171 2 0x4000 1 sh wait
9376 1 9376 2171 2 0x4000 1 sh wait
14967 10647 14967 2171 2 0x4000 1 csh tty
10647 1 4616 2171 2 0x4100 1 xterm select
7668 18338 7668 2171 2 0x4000 1 csh tty
18338 1 4616 2171 2 0x4100 1 xterm select
3945 283 283 143 2 0x4001 1 imapd
9385 3492 9385 2171 2 0x4000 1 mutt netio
3492 60 3492 2171 2 0x4000 1 csh pause
60 1 4616 2171 2 0x4100 1 xterm select
2605 15986 15986 32767 2 0x100 1 httpd semwait
4491 15986 15986 32767 2 0x100 1 httpd semwait
2329 15986 15986 32767 2 0x100 1 httpd semwait
12917 15986 15986 32767 2 0x100 1 httpd semwait
659 15986 15986 32767 2 0x100 1 httpd
12410 15986 15986 32767 2 0x100 1 httpd semwait
24103 15986 15986 32767 2 0x100 1 httpd
28998 15986 15986 32767 2 0x100 1 httpd semwait
15986 1 15986 0 2 0 1 httpd select
12909 12368 12909 2171 2 0x4000 1 csh pause
12368 1 4616 2171 2 0x4100 1 xterm select
5296 1 4616 2171 2 0x4000 1 xclock select
5629 1 4616 2171 2 0x4000 1 smproxy select
4325 1 4616 2171 2 0x4000 1 twm select
4616 2376 4616 2171 2 0x4000 1 xsm select
2376 324 2376 0 2 0 1 xdm wait
619 431 431 2171 2 0 1 dnetc
478 1 478 0 2 0x4000 1 getty tty
497 1 497 0 2 0x4000 1 getty tty
348 1 348 0 2 0x4000 1 getty tty
443 1 443 0 2 0x4000 1 getty tty
633 1 633 0 2 0x4000 1 getty tty
442 1 442 0 2 0x4000 1 getty tty
216 1 216 0 2 0x4000 1 getty tty
597 401 327 104 2 0x4101 1 exim-4.66-1 pipe
431 1 431 2171 2 0x4000 1 dnetc
401 327 327 0 2 0 1 cron pipe
327 1 327 0 2 0 1 cron nanoslp
575 1 575 0 2 0 1 inetd kqread
573 1 2 0 2 0x4000 1 NeMaC nanoslp
368 1 2 0 2 0x4000 1 NeMaC2 nanoslp
333 1 333 0 2 0 1 sshd select
340 324 340 0 2 0x4000 1 XFree86
324 1 324 0 2 0x1 1 xdm pause
302 1 302 0 2 0 1 ntpd
252 1 252 0 2 0 1 lpd select
283 1 283 143 2 0x101 1 master select
272 1 272 104 2 0x100 1 exim-4.66-1
266 1 266 0 2 0 1 dhcpd
231 1 231 0 2 0 5 nfsd *
227 1 227 0 2 0 1 mountd select
120 1 120 0 2 0 1 rpcbind select
150 1 150 0 2 0 1 racoon select
133 1 133 0 2 0 1 syslogd
1 0 1 0 2 0x4001 1 init wait
>0 -1 0 0 2 0x20002 38 system *
463 401 463 2171 5 0x4000 1 sh
db{0}> bt
breakpoint(c03c8176,8,cc878fec,c01eb62e,0) at netbsd:breakpoint+0x4
cpu_Debugger(0,3f8,5,c0326084,c05f65cc) at netbsd:cpu_Debugger+0xb
comintr(c2d7e600,cc7ddc00,0,0,0) at netbsd:comintr+0x17f
DDB lost frame for netbsd:Xintr_ioapic_edge4+0xa9, trying 0xcc878ff4
Xintr_ioapic_edge4() at netbsd:Xintr_ioapic_edge4+0xa9
--- interrupt ---
--- switch to interrupt stack ---
x86_pause(d4470758,5086960,cc7ddcf0,c0372506,cc7ddc05) at netbsd:x86_pause+0x2
biodone2(c365d008,7,0,c05b6c00,c365d008) at netbsd:biodone2+0x30
biointr(0,cc086d20,0,c03bc0b9,cc7ddda0) at netbsd:biointr+0x6f
softint_execute(cc07c004,cc086960,2,d0950010,cc080010) at netbsd:softint_execute
+0x8b
softint_dispatch(cd77e4a0,2,0,0,0) at netbsd:softint_dispatch+0x92
DDB lost frame for netbsd:Xsoftintr+0x3d, trying 0xcc7ddd88
Xsoftintr() at netbsd:Xsoftintr+0x3d
--- interrupt ---
uvm_fault(0xc0610860, 0, 1) -> 0xe
kernel: supervisor trap page fault, code=0
Faulted in DDB; continuing...
db{0}> mach cpu 0
using CPU 0
db{0}> bt
breakpoint(c03c8176,8,cc878fec,c01eb62e,0) at netbsd:breakpoint+0x4
cpu_Debugger(0,3f8,5,c0326084,c05f65cc) at netbsd:cpu_Debugger+0xb
comintr(c2d7e600,cc7ddc00,0,0,0) at netbsd:comintr+0x17f
DDB lost frame for netbsd:Xintr_ioapic_edge4+0xa9, trying 0xcc878ff4
Xintr_ioapic_edge4() at netbsd:Xintr_ioapic_edge4+0xa9
--- interrupt ---
--- switch to interrupt stack ---
x86_pause(d4470758,5086960,cc7ddcf0,c0372506,cc7ddc05) at netbsd:x86_pause+0x2
biodone2(c365d008,7,0,c05b6c00,c365d008) at netbsd:biodone2+0x30
biointr(0,cc086d20,0,c03bc0b9,cc7ddda0) at netbsd:biointr+0x6f
softint_execute(cc07c004,cc086960,2,d0950010,cc080010) at netbsd:softint_execute
+0x8b
softint_dispatch(cd77e4a0,2,0,0,0) at netbsd:softint_dispatch+0x92
DDB lost frame for netbsd:Xsoftintr+0x3d, trying 0xcc7ddd88
Xsoftintr() at netbsd:Xsoftintr+0x3d
--- interrupt ---
uvm_fault(0xc0610860, 0, 1) -> 0xe
kernel: supervisor trap page fault, code=0
Faulted in DDB; continuing...
db{0}> mach cpu 1
using CPU 1
db{0}> bt
x86_pause(c1d8e708,40,0,0,cd7cf744) at netbsd:x86_pause+0x2
uvn_findpage(d4470758,110dc000,0,cd7cf924,13) at netbsd:uvn_findpage+0x1b1
uvn_findpages(d4470758,110d1000,0,cd7cf938,cd7cf8f8) at netbsd:uvn_findpages+0xd
6
genfs_do_putpages(d4470758,110d0000,0,110e0000,0) at netbsd:genfs_do_putpages+0x
99b
genfs_putpages(cd7cfa08,c02a97b6,cd7cfa2c,c02c7c51,d4470758) at netbsd:genfs_put
pages+0x51
VOP_PUTPAGES(d4470758,110d0000,0,110e0000,0) at netbsd:VOP_PUTPAGES+0x94
ffs_write(cd7cfc00,17cfda0,cd7cfc1c,c0386078,d4470758) at netbsd:ffs_write+0xc62
VOP_WRITE(d4470758,cd7cfc6c,10,cc084d80,d4470758) at netbsd:VOP_WRITE+0x70
vn_write(cd8ed640,cd8ed664,cd7cfc6c,cc084d80,1) at netbsd:vn_write+0x131
dofilewrite(f,cd8ed640,8f308000,4000,cd8ed664) at netbsd:dofilewrite+0x8c
sys_write(ceb03220,cd7cfd04,cd7cfcfc,cd7cfd10,c03bbeb4) at netbsd:sys_write+0xc1
syscall(cd7cfd48,81100b3,bb8300ab,bfbf001f,9d82001f) at netbsd:syscall+0x157
db{0}> examine/x d4470758,41
0xd4470758: ceb03220 c04f2378 c0ce2074 c0f103e4 110e0 1
0xd4470770: c04fb9ee 0 110e0000 0 110e0000 0
0xd4470788: 4000 30 2000000 1e8 1 7
0xd44707a0: 13 cd4302d8 c2c4dc00 d030ed48 c05b55c0 0
0xd44707b8: 0 d2f50880 0 c41bbc30 d2f50820 d01d
2e08 0 0 0 1 1 ceb03224
0xd44707e8: 0 0 d44707e4 d4471bf8 0 0
0xd4470800: c04f2378 0 d4470804 0 0 c04f
b9ee 0 150e 0 150e 0 0
0xd4470830: 30 2000000 0 0 0 19
0xd4470848: cd4302d8 c2c4dc00 cf637744 d18bd988 c05b55c0
db{0}> #define v_interlock v_uobj.vmobjlock
?
db{0}> examine/x ceb03220,5
0xceb03220: 0 c05f89e8 0 c2995000 cc078840
db{0}> sync
syncing disks... bge0: watchdog timeout -- resetting
bge0: watchdog timeout -- resetting
bge0: watchdog timeout -- resetting
arp_drain: locked; punting
arp_drain: locked; punting
arp_drain: locked; punting
bge0: watchdog timeout -- resetting
bge0: watchdog timeout -- resetting
bge0: watchdog timeout -- resetting
bge0: watchdog timeout -- resetting
bge0: watchdog timeout -- resetting
ahc0: Timedout SCB already complete. Interrupts may not be functioning.
Home |
Main Index |
Thread Index |
Old Index