Linux MIPS Architecture development
 help / color / mirror / Atom feed
* A confusing oops dump ...
@ 2001-06-21 21:07 Jun Sun
  2001-06-22 19:58 ` Martin Michlmayr
  0 siblings, 1 reply; 3+ messages in thread
From: Jun Sun @ 2001-06-21 21:07 UTC (permalink / raw)
  To: linux-mips

I got the following oops dump during a stress load, which I cannot make any
sense out of it.  The most confusing part is that the status register
indicates program was running in kernel (KSU bits) while the $epc points to a
userland address.  How could this be ever possible at hardware level?

The only possible explanation is perhaps those saved registers were corrupted
between when the exception happens and core dumps, but so unlikely .... *sigh*

Any insight?

Jun

Unable to handle kernel paging request at virtual address 100096e0, epc ==
10000
Oops in fault.c:do_page_fault, line 172:
$0 : 00000000 100015d4 00000001 81e43160
$4 : 00000001 00000001 00000000 8328a680
$8 : 0000308e 00000000 800ba0dc 00000003
$12: 00000010 2ac45e7c 00000000 82f6e039
$16: 0041393c 10003510 000005f0 00000000
$20: 0000308e 00000000 fffffffc 00409350
$24: 00000000 2ab92f10
$28: 83b18000 7fff77f0 10003510 100096e0
epc   : 100096e0
Status: 30017c03
Cause : 00008008
Process  (pid: 0, stackpage=7fff6000)
Stack: 100096e0 7fff7800 004036f0 004036d4 10003518 7fff6fec 00000000 6f727020
       100096e0 7fff6930 7fff7b04 00004dd1 7fff7920 0fb64798 00000000 00000000
       00000000 00000000 0fb94020 00000000 00000000 00000000 0fb600cc 00000000
       00000000 00000000 00000000 00000000 00000000 0fb60104 0fb600d4 0fb600dc
       0fb600e4 00000000 00000000 00000000 0fb600ec 0fb600f4 00000000 00000000
       0fb600cc ...
Call Trace:
Code: (Bad address in epc)

^ permalink raw reply	[flat|nested] 3+ messages in thread
* Re: A confusing oops dump ...
@ 2001-06-21 20:29 Justin Carlson
  0 siblings, 0 replies; 3+ messages in thread
From: Justin Carlson @ 2001-06-21 20:29 UTC (permalink / raw)
  To: linux-mips

On Thu, 21 Jun 2001, you wrote:
> I got the following oops dump during a stress load, which I cannot make any
> sense out of it.  The most confusing part is that the status register
> indicates program was running in kernel (KSU bits) while the $epc points to a
> userland address.  How could this be ever possible at hardware level?

It's very possible at the hardware level...kernel mode enables access to
several segments; it doesn't disable mapped accesses.  I don't think it should
ever happen in linux, but there's nothing in the hardware that prevents this.

> 
> The only possible explanation is perhaps those saved registers were corrupted
> between when the exception happens and core dumps, but so unlikely .... *sigh*
> 
> Any insight?

You've got a TLBL exception, and va doesn't match epc, so
presumably the processor thinks it was a load and  not an ifetch that triggered
this.  It also follows that the processor thinks it found a valid instruction
at 0x10000.  If this is reproducable and the chip allows it, try dumping out
the icache when you hit this, see if 0x10000 really appears in there...

-Justin

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2001-06-23 13:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-06-21 21:07 A confusing oops dump Jun Sun
2001-06-22 19:58 ` Martin Michlmayr
  -- strict thread matches above, loose matches on Subject: below --
2001-06-21 20:29 Justin Carlson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox