linux-mips
[Top] [All Lists]

Re: a really really weird crash on swarm

To: Ralf Baechle <ralf@oss.sgi.com>
Subject: Re: a really really weird crash on swarm
From: "Maciej W. Rozycki" <macro@ds2.pg.gda.pl>
Date: Mon, 19 Aug 2002 14:57:14 +0200 (MET DST)
Cc: Jun Sun <jsun@mvista.com>, linux-mips@oss.sgi.com
In-reply-to: <20020811185138.A2133@dea.linux-mips.net>
Organization: Technical University of Gdansk
Reply-to: "Maciej W. Rozycki" <macro@ds2.pg.gda.pl>
Sender: owner-linux-mips@oss.sgi.com
On Sun, 11 Aug 2002, Ralf Baechle wrote:

> > Call me crazy - I have seen crash like this.  As you can see, the register 
> > is 
> > loaded with one value and on next instruction it shows another value.  What 
> > the hell is it possibly going on?
> > 
> > This is with today's OSS tree 2.4 branch.
> 
> Really odd because the register only lost the upper 16 bits; the lower 16
> bits still have their expected value.

 It is a typical symptom of a register being corrupted between a "lui" and
an "addiu"  -- an exception must have done it in the immediately preceding
code.  You might be able to track a reason down by carefully studying
possible exception paths at the place of the problem.  Unfortunately you
don't have much of the state preserved at this stage -- you only know
which register was corrupted. 

 Another possible approach is to add some code that compares the values of
the register upon an exception entry and exit and wait for it to trigger
-- for a single register it shouldn't be too tough and you have still much
of the state available before an "rfe" or "eret".

-- 
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+        e-mail: macro@ds2.pg.gda.pl, PGP key available        +


<Prev in Thread] Current Thread [Next in Thread>