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" <mhitch%lightning.msu.montana.edu@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: dmarquess%gmail.com@localhost
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 mhitch%montana.edu@localhost
Computer Consultant
Information Technology Center
Montana State University Bozeman, MT USA
Home |
Main Index |
Thread Index |
Old Index