Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Sep 2012 08:48:19 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-current@freebsd.org, mexas@bristol.ac.uk
Cc:        linimon@lonesome.com, freebsd-ia64@freebsd.org
Subject:   Re: out of swap space causing panic?
Message-ID:  <201209200848.19246.jhb@freebsd.org>
In-Reply-To: <201209200817.q8K8HqPX012614@mech-cluster241.men.bris.ac.uk>
References:  <201209200817.q8K8HqPX012614@mech-cluster241.men.bris.ac.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday, September 20, 2012 4:17:52 am Anton Shterenlikht wrote:
> It is expected that running out of swap space
> causes panic?
> 
> This is on ia64 r235474.
> 
> Mark, I'll add another swap disk,
> so there will be ~85 GB of swap space.
> Will let you know when done.
> 
> 
> - - - - - - - - - - Prior Console Output - - - - - - - - - -
> swap_pager_getswapspace(16): failed
> Sep 19 04:12:20 mech-as28 kernel: pid 36179 (tst_fmt_usr), uid 0, was killed: out of swap space
> Sep 19 10:54:01 mech-as28 su: mexas to root on /dev/pts/0
> panic: _mtx_lock_sleep: recursed on non-recursive mutex process lock @ /usr/src/sys/ia64/ia64/trap.c:562
> 
> cpuid = 1
> KDB: enter: panic
> [ thread pid 25199 tid 100332 ]
> Stopped at      kdb_enter+0x92: [I2]    addl r14=0xffffffffffe25000,gp ;;
> db> 
> db> bt
> Tracing pid 25199 tid 100332 td 0xe0000001d44088a0
> kdb_enter(0x9ffc000000c52c38, 0x9ffc000000c52c38, 0x9ffc0000004eb6b0, 0x793) at kdb_enter+0x92
> panic(0x9ffc000000c50e98, 0x9ffc000000c50f40, 0x9ffc000000c93830, 0x232) at panic+0x420
> _mtx_lock_sleep(0xe0000000159c6e90, 0xe0000001d44088a0, 0x0, 0x9ffc000000c93830, 0x232) at _mtx_lock_sleep+0xb0
> _mtx_lock_flags(0xe0000000159c6e90, 0x0, 0x9ffc000000c93830, 0x232, 0x9ffc00000097dcc0, 0x716, 0x14022d4c0) at _mtx_lock_flags+0x1a0
> trap(0x14, 0xa0000000f88fb000) at trap+0x940
> ivt_Data_TLB() at ivt_Data_TLB+0x1d0
> --- trapframe at 0xa0000000f88fb000
> crhold() at crhold+0x10

No, your problem is here.  You should never get a trap in crhold().  Something
else is wrong.

> cred_update_thread(0xe0000001d44089d0, 0xe0000000159c6dd8, 0xe0000000159c6e90, 0x9ffc000000c51cf0) at cred_update_thread+0x70
> syscall(0xe0000000159c6d98, 0x1408aa000, 0x1c, 0xe0000001d44088a0, 0x140849630, 0x0, 0x9ffc000000979a40, 0x8) at syscall+0xd0
> epc_syscall_return() at epc_syscall_return

Note that this is not a thread in vm_pageout_oom(), so this is not in the code
handling the out-of-swap condition.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201209200848.19246.jhb>