linux-mips
[Top] [All Lists]

Re: bus error IRQ

To: "William J. Earl" <wje@fir.engr.sgi.com>
Subject: Re: bus error IRQ
From: ralf@uni-koblenz.de
Date: Thu, 20 Aug 1998 02:13:22 +0200
Cc: Ulf Carlsson <grim@zigzegv.ml.org>, linux@cthulhu.engr.sgi.com
In-reply-to: <199808190231.TAA27036@fir.engr.sgi.com>; from William J. Earl on Tue, Aug 18, 1998 at 07:31:05PM -0700
References: <199808171845.UAA29545@calypso.saturn> <19980818021316.J3345@uni-koblenz.de> <199808190231.TAA27036@fir.engr.sgi.com>
Sender: owner-linux@cthulhu.engr.sgi.com
On Tue, Aug 18, 1998 at 07:31:05PM -0700, William J. Earl wrote:

> ralf@uni-koblenz.de writes:
> ...
>  > The bad thing with a bus error is that it may be delayed for a very long
>  > time thus resulting in a useless program counter.  What happens is that
>  > the CPU writes to some invalid address but the write access over the
>  > system bus is delayed because the writeback cache policy is being used.
>  > Later, maybe even much later, when the cacheline gets written back to
>  > memory for some reason the system board signals a bus error interrupt.
>  > At this point the program counter may already be completly useless.
> ...
> 
>      You cannot get a delayed bus error on a cached write, unless
> you do a "create dirty exclusive" cache operation to validate the line
> before writing.

Linux uses Create_Dirty_Excl_D as optimization where possible, so the
probability for this to happen is relativly high.  Linux however should
never use Create_Dirty_Excl_D or Create_Dirty_Excl_SD on R4[04]00SC
CPUs, have to verify this.

>                  You can get delayed bus errors on uncached writes,
> as to device control registers.  Since any K1SEG address is uncached,
> it is not too hard to generate a bus error with a bad pointer value.

  Ralf

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