page fault panic tracked down (selwakeuppri())

Don Lewis truckman at FreeBSD.org
Mon Jan 5 18:06:10 PST 2004


On  6 Jan, Stefan Ehmann wrote:
> On Mon, 2004-01-05 at 11:36, Bruce Evans wrote:
>> On Sun, 4 Jan 2004, Stefan Ehmann wrote:
>> 
>> > For the first time I got a backtrace that ended in the soundcard module
>> > - So maybe this is the right direction (on the other hand this might be
>> > some newly introduced error)
>> The sound driver is in modules.  Have you ruled out having an inconsistent
>> module.
> 
> For some reason gdb loaded debugging information for all modules except
> bktr, snd_pcm and snd_csa. (I always build kernel with
> MODULES_OVERRIDE).
> 
> To work around this problem I compiled a kernel with static pcm. That
> would also rule out an inconsistent module. The system is up now 6 hours
> and still no panic. If this panic will only happen with csa/pcm as
> module I'll be even more puzzled.
> 
> I'm also still not sure why I got three "bad bufsize" panics in a row
> all of the sudden instead of page faults. (Most of the previous kernels
> were built without INVARIANTS - but at least some with).

The parameters passed to feed_vchan_16() might be bad in such a way that
the KASSERT is happy, but the heap still gets trashed.

If you can't get the KASSERT failure without this code being in a module
(or get gdb to debug the module), it might be interesting to change this
KASSERT into an "if" test that prints the parameters and anything else
of interest and then calls panic().


More information about the freebsd-current mailing list