Subject: Re: Argh! panic on cvs checkout
To: Gavan Fantom <gavan@coolfactor.org>
From: Richard Earnshaw <rearnsha@arm.com>
List: port-arm32
Date: 05/22/2001 15:38:04
> On Tue, 22 May 2001, Richard Earnshaw wrote:
> 
> > The second bug is a much bigger problem and affects demand-paging.  This
> > is caused by having a ldm ..,{...,pc} instruction as the last instruction
> > in a page of memory.  The only known solution is to avoid such
> > instructions in such locations, and the only practical way to achieve this
> > is to patch binaries as the problem comes to light, but this can (in
> > theory) corrupt the binary if what looks like an instruction is really
> > data (I've never seen this happen in practice though).  There is a program
> > that I wrote a while back that will do this for you, it can be downloaded
> > from
> 
> What is the effect of an instruction here? 

The processor can prefetch-abort when it shouldn't.

> Is the panic I'm seeing
> consistent with this? 

I've not seen this before, but it could well be a symptom of the 
underlying problem.  Normally, a program starts looping interminably.

> Which binary should I be looking to patch? cvs? Or
> the kernel?

CVS.  It mainly happens on applications that start to swap, but there's no 
guarantee that other (small) programs won't show similar problems.

R.

The only real fix for the SA-rev2 problems is to replace it with an 
SA-rev3 or later chip... ;-(