Subject: pool lossage
To: Matthew Jacob <mjacob@feral.com>
From: Jason R Thorpe <thorpej@wasabisystems.com>
List: tech-kern
Date: 10/17/2001 12:37:34
On Tue, Oct 09, 2001 at 10:04:38PM -0700, Matthew Jacob wrote:

 > panic: panic: kernel diagnostic assertion "pcg->pcg_objects[idx] !=
 > NULL" failed: file "../../../../kern/subr_pool.c", line 1695

Okay, I just saw something similar to this on my AlphaStation 200 with a
"tlp" as it was playing NFS server for my UltraSPARC CP1500 linking a
kernel...

The kernel that pooped out was built on Oct 5 ... so it predates
the partial-page stuff Ben added to subr_pool.c (which looks pretty
harmless anyway).

Anyone have any idea what might be at fault here?  Note that Matt's
backtrace shows the assertion in pcg_get() failing, whereas mine is
the "== NULL" version of the assertion in pcg_put(), although it is
entirely possible that there was the same assertion failure I saw
in his case, as well (note the nested panic).

 > 
 > Stopped in pid 5 (pagedaemon) at        cpu_Debugger+0x4:       ret
 > zero,(ra
 > )
 > db> t
 > cpu_Debugger() at cpu_Debugger+0x4
 > panic() at panic+0x15c
 > __assert() at __assert+0x34
 > pool_cache_get() at pool_cache_get+0x154
 > stge_add_rxbuf() at stge_add_rxbuf+0x74
 > stge_rxintr() at stge_rxintr+0x178
 > stge_intr() at stge_intr+0x120
 > alpha_shared_intr_dispatch() at alpha_shared_intr_dispatch+0x6c
 > eb164_iointr() at eb164_iointr+0x40
 > interrupt() at interrupt+0x270
 > XentInt() at XentInt+0x1c
 > --- interrupt (from ipl 0) ---
 > printf() at printf+0xcc
 > panic() at panic+0xdc
 > __assert() at __assert+0x34
 > pool_cache_do_invalidate() at pool_cache_do_invalidate+0xe0
 > pool_cache_reclaim() at pool_cache_reclaim+0x1c
 > pool_reclaim() at pool_reclaim+0x58
 > pool_drain() at pool_drain+0x90
 > uvm_pageout() at uvm_pageout+0x164
 > esigcode() at esigcode
 > --- root of call graph ---
 > 
 > 
 > 

-- 
        -- Jason R. Thorpe <thorpej@wasabisystems.com>