From: Joshua Kinard <kumba@gentoo.org>
To: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
Subject: Re: IP30: SMP, Almost there?
Date: Sat, 23 May 2015 18:57:50 -0400 [thread overview]
Message-ID: <556105EE.9060802@gentoo.org> (raw)
In-Reply-To: <20150522163826.GB6467@linux-mips.org>
On 05/22/2015 12:38, Ralf Baechle wrote:
> 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.
Well, the IBE's are happening in userland, loading init, on CPU1. I hacked
together a basic bus error handler from IP27's and using that, instead of
seeing four IBE's in a row, I can get CPU1 to stall and dump whatever debug
data I want. Downside is, I've only got the Odyssey Early console available,
so I have to take pictures of the debug text or oops data, then manually type
it into a text file.
Further experimenting with a dual R12K module suggests that whatever the
problem is, it's got something to do with the R14K. I'm having better success
with the R12K dual module thus far. More on that later...
> 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.
I thought that agent might be HEART, but the HEART_CAUSE register reads
0x00000000 when an IBE happens, which means no issues from its end.
How does one probe the SysAD bus? The R10K documentation has some breakdown of
the bit format of SysAD messages. Is there a memory address somewhere that can
be used to read data off the bus or even talk to it to get error information
(like, does it have a CAUSE register or something)?
Otherwise, figuring out what's wrong with the R14K is going to take a long time...
--J
next prev parent reply other threads:[~2015-05-23 22:58 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-18 5:39 IP30: SMP, Almost there? Joshua Kinard
2015-05-18 12:01 ` Joshua Kinard
2015-05-20 5:23 ` Joshua Kinard
2015-05-21 6:00 ` Joshua Kinard
2015-05-22 12:01 ` Maciej W. Rozycki
2015-05-22 17:11 ` Ralf Baechle
2015-05-23 22:52 ` Joshua Kinard
2015-05-24 14:25 ` Maciej W. Rozycki
2015-05-22 16:38 ` Ralf Baechle
2015-05-23 22:57 ` Joshua Kinard [this message]
2015-05-22 16:25 ` Ralf Baechle
2015-05-24 3:17 ` Joshua Kinard
2015-06-01 5:08 ` Joshua Kinard
2015-06-01 6:00 ` IP30: SMP, Almost there! Joshua Kinard
2015-06-01 19:32 ` IP30: SMP, Almost there? Ralf Baechle
2015-06-02 5:31 ` Joshua Kinard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=556105EE.9060802@gentoo.org \
--to=kumba@gentoo.org \
--cc=linux-mips@linux-mips.org \
--cc=ralf@linux-mips.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.