Subject: Re: multiprocessor sparc64
To: Martin Husemann <martin@duskware.de>
From: Chris Ross <cross@distal.com>
List: port-sparc64
Date: 06/11/2007 12:16:24
On Jun 11, 2007, at 11:45 AM, Martin Husemann wrote:
> On Mon, Jun 11, 2007 at 11:28:18AM -0400, Chris Ross wrote:
>>   Now, would booting a GENERIC.MP kernel give me anything of
>> value?  ;-)  Is there anything useful I could provide to that effort
>> without spending days learning about the hard-core internals of UPA
>> and UltraSparc II processors?
>
> Well, if you are able to use ddb, you can try ;-)

   able?  Yes.  How well do I know how to do useful things with it?   
That's a separate issue.  ;-)

> It should boot single user with no problems (with all cpus active),  
> but then
> will die "soon". There are varying failure modes - last time I saw  
> curlwp
> being NULL (which is impossible at this state in -current), and the  
> kernel
> crashed dereferencing that NULL pointer.

   In my case, which is with an NFS root currently, it does all the  
device attachments, and because I set rc_configured to NO, it did:

root on AA.BB.CC.DD:/export/sparc64/nfsroot
root file system type: nfs
/etc/rc.conf is not configured.  Multiuser boot aborted.
Enter pathname of shell or RETURN for /bin/sh:

Then, I hit return, and get:

trap typT 0x10: cpu 1, pc=1008e5c npc=1008e60 pstate=44820006<PRIV,IE>
kernel trap 10: illegal instruction
cpu0: kdb breakpoint at 1008ee4
cpu0 paused.
Stopped in pid 0.3 (system) at  0x1008e5c:      done
db{1}>

   So, not too useful.  Didn't get to running /bin/sh fully.  :-)

> Ddb mostly works ok, but the machine (at least for me) sometimes hangs
> if you go to the prom with the wrong cpu active.
>
> Collecting various failure modes could be interesting.

   Welp, here's one more.  Lemme refresh my "how do I get useful  
information with DDB?" memory, and I'll take a look at this.  I can  
at least test how repeatable it is.  :-)

                                                     - Chris

ps,
is "trap typT 0x10" some sort of I/O error?