NetBSD-Bugs archive

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

Re: port-alpha/42174

The following reply was made to PR port-alpha/42174; it has been noted by GNATS.

From: "Michael L. Hitch" <>
Subject: Re: port-alpha/42174
Date: Mon, 2 Nov 2009 11:22:33 -0700 (MST)

 On Mon, 2 Nov 2009, Dustin Marquess wrote:
 > I just hit:
 > panic: kernel diagnostic assertion "pcg->pcg_avail == 0" failed: file
 > "../../../../kern/subr_pool.c", line 2580
    Hmm, I wonder if this might be related to some of the pool cache
 corruption I've seen at times.
 > Not sure if that's related to DIAGNOSTIC or LOCKDEBUG.  If it's
 > related to DIAGNOSTIC I'll recompile with that disabled for now.
    The KASSERT() is enabled by DIAGNOSTIC, which I now see isn't enabled
 in my kernel and would explain why I haven't seen this happen.  I
 would presume that the condition being tested shouldn't have happened,
 and ignoring it by turning off DIAGNOSTIC would likely just result in
 problems later.
    There's a couple of things you can try that essentially disable the
 use of using pool cache entries to shootdown tlbs.  One is a variable
 you can patch on boot or change in the source to disable all the pool
 caching.  The variable is pool_cache_disable in sys/kern/subr_pool.c
 about line 182.  This can also be set temporarily on boot by using
 the -d flag to enter the debugger on startup and setting it with the
 command "write pool_cache_disable 1" and continuing.
    The other thing is to change the maximum number of TLB entries to
 shootdown from 6 to 0 in sys/arch/alpha/alpha/pmap.c, about line 433.
 This will force the tlb shootdown routine to always invalid all tlb
 entries and never attempt to use pool cache entries.
 Michael L. Hitch             
 Computer Consultant
 Information Technology Center
 Montana State University       Bozeman, MT     USA

Home | Main Index | Thread Index | Old Index