Subject: Re: Simple way to panic arm kernels
To: Richard Earnshaw <rearnsha@buzzard.freeserve.co.uk>
From: Richard Earnshaw <Richard.Earnshaw@arm.com>
List: port-arm
Date: 04/26/2004 10:17:47
On Sun, 2004-04-25 at 21:50, Richard Earnshaw wrote:
> > I've seen the panic triggered by assertion at uvm_bio.c:257 on both
> > netwinder and shark (both diskless):
> >
> > KASSERT(umap->refcount != 0);
> >
> > I reliably get it running a test suite that executes a bunch of
> > commands with output to file. I get it when the output file is either
> > on nfs or mfs.
> >
> > I have just reproduced the same panic with:
> >
> > $ yes | sed 1000000q | while read; do \
> > ( echo -n 1 >>XXX; echo -n 2 >>XXX; echo -n 3 >>XXX ); \
> > done
> >
>
> I've finally managed to track this down to revision 1.8 of
> arch/arm/include/arm32/frame.h
>
> That's somewhat odd, since I can't really see why that patch would
> introduce any sort of race condition that wouldn't have existed previously
> (and presumably that is what is happening). But the simple fact is that
> kernels built from code before that change are stable, and kernels built
> afterwards (or earlier kernels with that change applied) are not.
A 'current' kernel with frame.h backed off to revision 1.7 ran the above
test for 9 hours last night without panicing. That's about 9 times
longer than I've ever seen a broken kernel manage.