tech-kern archive

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

uvm_pagealloc_strat locking against itself



I got this panic on an evbmips board (root on NFS):

Mutex error: lockdebug_wantlock: locking against myself
                                                       
lock address : 0x000000008040742c type     :               spin
initialized  : 0x00000000802bede0   (uvm_page_init+0x7c)
shared holds :                  0 exclusive:                  1
shares wanted:                  0 exclusive:                  1
current cpu  :                  0 last held:                  0
current lwp  : 0x0000000083f68840 last held: 0x0000000083f68840
last locked  : 0x00000000802bdd18 (uvm_pagealloc_strat+0xf0)
unlocked     : 0x00000000802bdee0 (uvm_pagealloc_strat+0x2b8)
owner field  : 000000000000000000 wait/spin:                0/1
                                                               
panic: LOCKDEBUG

panic+21c (83fff000,8023247c,0,8035730c) ra 80228c90 sz 48    
lockdebug_abort1+fc (83fff000,8023247c,0,8035730c) ra 80229ca0 sz 40
lockdebug_wantlock+1c4 (83fff000,8023247c,0,8035730c) ra 80185b54 sz 72
mutex_enter+33c (83fff000,8023247c,0,8035730c) ra 802bdd18 sz 48       
uvm_pagealloc_strat+f0 (83fff000,8023247c,0,8035730c) ra 802ad148 sz 80
uvm_km_alloc_poolpage+40 (83fff000,8023247c,0,8035730c) ra 8022d518 sz 48
pool_grow+50 (83fff000,8023247c,0,8035730c) ra 8022d918 sz 48            
pool_catchup+34 (83fff000,8023247c,0,8035730c) ra 8022d0d8 sz 24
pool_get+500 (83fff000,8023247c,0,8035730c) ra 8022f890 sz 64   
pool_cache_get_slow+248 (83fff000,8023247c,0,8035730c) ra 8022fb7c sz 64
pool_cache_get_paddr+1f8 (83fff000,8023247c,0,8035730c) ra 8012bf84 sz 64
aumac_intr+a4 (83fff000,8023247c,0,8035730c) ra 800a6ed8 sz 72           
au_iointr+148 (f803,800,0,800) ra 80141a8c sz 80              
cpu_intr+7c (f803,800,0,800) ra 801b3764 sz 56  
mips32_KernIntr+84 (80407110,80406fa4,0,4) ra 802bc090 sz 128
uvm_pagealloc_pgfl+44 (80407110,80406fa4,0,4) ra 802bdf88 sz 48
uvm_pagealloc_strat+360 (80407110,80406fa4,0,4) ra 802ad148 sz 80
uvm_km_alloc_poolpage+40 (80407110,80406fa4,0,4) ra 8022d518 sz 48
pool_grow+50 (80407110,80406fa4,0,4) ra 8022cc5c sz 48            
pool_get+84 (80407110,80406fa4,0,4) ra 8014db40 sz 64 
ip_input+c7c (83f58a00,80406fa4,0,4) ra 8014dcec sz 72
ipintr+70 (83f58a00,80406fa4,0,4) ra 801985ac sz 48   
softint_thread+124 (83f58a00,80406fa4,0,4) ra 801b3dbc sz 56
mips32_lwp_trampoline+20 (83f58a00,80406fa4,0,4) ra 0 sz 24 

The mutex in question probably is uvm_fpageqlock.

Just bad luck? I don't see what "normally" would prevent this from happening.

Martin


Home | Main Index | Thread Index | Old Index