NetBSD-Bugs archive

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

kern/48372: sunblade 2500 hangs under memory pressure -- loop between uvm/pool/vmem



>Number:         48372
>Category:       kern
>Synopsis:       sunblade 2500 hangs under memory pressure -- loop between 
>uvm/pool/vmem
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Nov 08 22:40:00 +0000 2013
>Originator:     matthew green
>Release:        NetBSD 6.1_STABLE
>Organization:
people's front against (bozotic) www (softwar foundation)
>Environment:
        
        
System: NetBSD splode.eterna.com.au 6.1_STABLE NetBSD 6.1_STABLE (_splode_) #1: 
Thu Jul 11 19:09:23 EST 2013 
mrg%splode.eterna.com.au@localhost:/var/obj/sparc64/usr/src/sys/arch/sparc64/compile/_splode_
 sparc64
Architecture: sparc64
Machine: sparc64
>Description:

twice after being up about 6 days my sunblade 2500 with one cpu
and 4GB of ram has hung.  breaking into ddb on the console shows
that a loop was occuring between uvm, pool and vmem.

"show uvm" says that there is only 1 free page, and the bt is:

db{0}> bt
intr_list_handler(59c86d0, a, e0017ed0, 330, 1203f20, 0) at 
netbsd:intr_list_handler+0x10
sparc_interrupt(0, a, 400cc000, 575dec0, 0, 0) at netbsd:sparc_interrupt+0x22c
mutex_spin_enter(18aac80, ff070000000001, ffffffffffffffff, 4000001, 0, 0) at 
netbsd:mutex_spin_enter+0xa0
bt_refill(18abd18, 1002, ff070000000001, 874061e8, 0, 0) at 
netbsd:bt_refill+0x100
vmem_xalloc(18abd18, 2000, 2000, 0, 0, 0) at netbsd:vmem_xalloc+0x6c
vmem_alloc(18abd18, 2000, 1002, 87405d68, 0, 0) at netbsd:vmem_alloc+0x94
pool_page_alloc_meta(18a93f0, 2, ff070000000001, 87406aa8, 0, 0) at 
netbsd:pool_page_alloc_meta+0x2c
pool_grow(18a93f0, 2, 2000, 0, 0, 0) at netbsd:pool_grow+0x1c
pool_get(18a94a8, 2, ff070000000001, 330, 0, 0) at netbsd:pool_get+0x3c
pool_cache_put_slow(18ad840, a, 400cc000, 575dec0, 0, 0) at 
netbsd:pool_cache_put_slow+0x160
pool_cache_put_paddr(18ad600, 400cc000, ffffffffffffffff, 4000001, 0, 0) at 
netbsd:pool_cache_put_paddr+0xa4

[ this repeats 30 more times
uvm_km_kmem_alloc(c, 2000, 0, 87411628, 0, 0) at netbsd:uvm_km_kmem_alloc+0x104
vmem_xalloc(18abd18, 18abfb0, 2000, 0, 0, 0) at netbsd:vmem_xalloc+0x8ac
vmem_alloc(18abd18, 2000, 1002, 874117c8, ff7fffff, ffdfffff) at 
netbsd:vmem_alloc+0x94
pool_page_alloc_meta(18a93f0, 2, ff070000000001, 13, 0, 0) at 
netbsd:pool_page_alloc_meta+0x2c
pool_grow(18a93f0, 2, 59c2000, 13, 7d, 0) at netbsd:pool_grow+0x1c
pool_get(18a94a8, 2, 59c2000, 5, 10c2660, ffffffffffffffff) at 
netbsd:pool_get+0x3c
pool_cache_put_slow(57b7780, 0, 28f50940, 4, 0, 0) at 
netbsd:pool_cache_put_slow+0x160
pool_cache_put_paddr(57b7540, 28f50940, ffffffffffffffff, 201b, 0, 0) at 
netbsd:pool_cache_put_paddr+0xa4
]

ffs_reclaim(0, 59c2000, 59c2000, 0, 0, 0) at netbsd:ffs_reclaim+0xec
VOP_RECLAIM(28f54e70, 1, 0, 59c2000, 0, 0) at netbsd:VOP_RECLAIM+0x28
vclean(28f54e70, 8, 0, 0, ff7fffff, ffdfffff) at netbsd:vclean+0x134
cleanvnode(1884500, 0, 64, 6, 28f54e94, 1884500) at netbsd:cleanvnode+0xc4
vdrain_thread(59c2000, 59c2000, 0, 1c05d38, 7d, 0) at netbsd:vdrain_thread+0x90
lwp_trampoline(f005d730, 113800, 113c00, 111880, 111ce0, 1117f8) at 
netbsd:lwp_trampoline+0x8


>How-To-Repeat:

        not really sure.  the second hang was during a backup
        run, but the first hang was an hour or two after that
        had finished.

>Fix:

>Unformatted:
        
        


Home | Main Index | Thread Index | Old Index