Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: current hang: arp_drain: locked; punting

On Tue, Oct 21, 2008 at 11:28:16AM +0000, Andrew Doran wrote:
> The arp_drain message is expected. I have removed the printf in -current. It
> can be taken as an indication that the system is under memory pressure.


> Probably the pagedaemon trying to free up memory. There was a report of a
> problem with it on tech-kern. I will try to reproduce the issue.


> > Same machine hang yesterday with (probably contains lots of typos):
> > fatal page fault in supervisor mode
> > trap type 6 code 0 rip ffffffff...f0017661b es 0 rflags 10206 cr250 cpl 4 
> > rsp ffff...00000487457f0
> > panic: trap
> > syncing disks... 16 16 16...16 giving up
> What location in /netbsd corresponds to the value of 'eip' given? Can you
> get a crash dump from this system in order to get a backtrace?

I have no crash dump and no netbsd.gdb, sorry, and I've replaced the
kernel in the meantime with 4.99.73 (I'll be able to make a netbsd.gdb
next time). gdb's disassemble of the address gave (look for "HERE"):

Dump of assembler code for function ipsec6_getpolicybysock:
0xffffffff801765d0 <ipsec6_getpolicybysock+0>:  push   %rbp
0xffffffff801765d1 <ipsec6_getpolicybysock+1>:  mov    %rsp,%rbp
0xffffffff801765d4 <ipsec6_getpolicybysock+4>:  sub    $0x150,%rsp
0xffffffff801765db <ipsec6_getpolicybysock+11>: test   %rdi,%rdi
0xffffffff801765de <ipsec6_getpolicybysock+14>: mov    
0xffffffff801765e2 <ipsec6_getpolicybysock+18>: mov    %esi,%r14d
0xffffffff801765e5 <ipsec6_getpolicybysock+21>: mov    %rdx,%rsi
0xffffffff801765e8 <ipsec6_getpolicybysock+24>: sete   %dl
0xffffffff801765eb <ipsec6_getpolicybysock+27>: test   %rsi,%rsi
0xffffffff801765ee <ipsec6_getpolicybysock+30>: mov    
0xffffffff801765f2 <ipsec6_getpolicybysock+34>: sete   %al
0xffffffff801765f5 <ipsec6_getpolicybysock+37>: mov    
0xffffffff801765f9 <ipsec6_getpolicybysock+41>: mov    
0xffffffff801765fd <ipsec6_getpolicybysock+45>: or     %al,%dl
0xffffffff801765ff <ipsec6_getpolicybysock+47>: mov    
0xffffffff80176603 <ipsec6_getpolicybysock+51>: mov    %rdi,%r12
0xffffffff80176606 <ipsec6_getpolicybysock+54>: mov    %rcx,%r13
0xffffffff80176609 <ipsec6_getpolicybysock+57>: jne    0xffffffff80176670 
0xffffffff8017660b <ipsec6_getpolicybysock+59>: test   %rcx,%rcx
0xffffffff8017660e <ipsec6_getpolicybysock+62>: je     0xffffffff80176670 
0xffffffff80176610 <ipsec6_getpolicybysock+64>: mov    0x30(%rsi),%rax
0xffffffff80176614 <ipsec6_getpolicybysock+68>: mov    4898837(%rip),%rdi       
 # 0xffffffff80622630 <ipsec6stat_percpu>
HERE ----> 0xffffffff8017661b <ipsec6_getpolicybysock+75>: mov    
0xffffffff8017661f <ipsec6_getpolicybysock+79>: callq  0xffffffff802a0950 
0xffffffff80176624 <ipsec6_getpolicybysock+84>: incq   0x3090(%rax)
0xffffffff8017662b <ipsec6_getpolicybysock+91>: mov    4898814(%rip),%rdi       
 # 0xffffffff80622630 <ipsec6stat_percpu>
0xffffffff80176632 <ipsec6_getpolicybysock+98>: callq  0xffffffff802a0610 

The corresponding source files (ident /netbsd.old | grep -e ip6 -e
ipsec) are:

     $NetBSD: ip6_flow.c,v 1.17 2008/04/28 20:24:10 martin Exp $
     $NetBSD: ip6_forward.c,v 1.65 2008/04/23 06:09:05 thorpej Exp $
     $NetBSD: ip6_id.c,v 1.16 2006/08/30 17:11:53 christos Exp $
     $NetBSD: ip6_input.c,v 1.119 2008/05/04 07:22:15 thorpej Exp $
     $NetBSD: ip6_mroute.c,v 1.94 2008/05/22 01:06:39 dyoung Exp $
     $NetBSD: ip6_output.c,v 1.129 2008/04/23 06:09:05 thorpej Exp $
     $NetBSD: raw_ip6.c,v 1.99 2008/05/04 07:22:15 thorpej Exp $
     $NetBSD: ipsec.c,v 1.130 2008/05/04 07:22:15 thorpej Exp $

Please let me know if I can provide further helpful details... do you
want the kernel binary?


Home | Main Index | Thread Index | Old Index