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.
Ok.
> 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.
Thanks.
> > 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
%r14,0xfffffffffffffff0(%rbp)
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
%r12,0xffffffffffffffe0(%rbp)
0xffffffff801765f2 <ipsec6_getpolicybysock+34>: sete %al
0xffffffff801765f5 <ipsec6_getpolicybysock+37>: mov
%r13,0xffffffffffffffe8(%rbp)
0xffffffff801765f9 <ipsec6_getpolicybysock+41>: mov
%rbx,0xffffffffffffffd8(%rbp)
0xffffffff801765fd <ipsec6_getpolicybysock+45>: or %al,%dl
0xffffffff801765ff <ipsec6_getpolicybysock+47>: mov
%r15,0xfffffffffffffff8(%rbp)
0xffffffff80176603 <ipsec6_getpolicybysock+51>: mov %rdi,%r12
0xffffffff80176606 <ipsec6_getpolicybysock+54>: mov %rcx,%r13
0xffffffff80176609 <ipsec6_getpolicybysock+57>: jne 0xffffffff80176670
<ipsec6_getpolicybysock+160>
0xffffffff8017660b <ipsec6_getpolicybysock+59>: test %rcx,%rcx
0xffffffff8017660e <ipsec6_getpolicybysock+62>: je 0xffffffff80176670
<ipsec6_getpolicybysock+160>
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
0x58(%rax),%r15
0xffffffff8017661f <ipsec6_getpolicybysock+79>: callq 0xffffffff802a0950
<percpu_getref>
0xffffffff80176624 <ipsec6_getpolicybysock+84>: incq 0x3090(%rax)
0xffffffff8017662b <ipsec6_getpolicybysock+91>: mov 4898814(%rip),%rdi
# 0xffffffff80622630 <ipsec6stat_percpu>
0xffffffff80176632 <ipsec6_getpolicybysock+98>: callq 0xffffffff802a0610
<percpu_putref>
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?
Thanks,
Thomas
Home |
Main Index |
Thread Index |
Old Index