Re: IP30: SMP, Almost there?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, May 21, 2015 at 02:00:09AM -0400, Joshua Kinard wrote:

> Where I am lost is, though, why would I get an IBE on a 'beqz' instruction?
> It's a valid instruction from MIPS-I ('beqz' is just 'beq' w/ $0 as rt).  the
> R10K Manual states this:
> 
> """
> A Bus Error exception occurs when a processor block read, upgrade, or
> double/single/partial-word read request receives an external ERR completion
> response, or a processor double/single/partial-word read request receives an
> external ACK completion response where the associated external
> double/single/partial-word data response contains an uncorrectable error. This
> exception is not maskable.
> """
> 
> My guess is there's still something not kosher with icache flushing somewhere.
>  I can reboot this kernel multiple times and not always get the same IBE.  Most

Not or improperly flush the I-cache will result in stale instructions
getting executed.  An IBE error otoh is the result of a bus error being
signalled for the CPU's attempt to load instructions from memory.  With
the exception of a few special cases I-cache flushing doesn't happen
when eecuting kernel code, but only for userland and it's also somewhat
unlikely for improper I-cache flushing to result in an IBE error.

A huge problem tracking down the cause of a bus error is that they're
getting signalled by an external agent that is they are not generated by
the CPU itself and there may be a significant delay until the CPU
actually takes the exception.  In my experience the EPC is practically
always worthless in tracking down the cause of the bus error.  Details
depend on circumstances, as usual.

  Ralf





[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux