Re: NetBSD on Sun T5220

Palle Lyckegaard <[email protected]> Tue, 30 Sep 2025 19:23:20 +0000 (UTC)
Newsgroups gmane.os.netbsd.ports.sparc64
Message-ID <[email protected]>
On Tue, 30 Sep 2025, Sad Clouds wrote:

>
> Hi, I'll see if I can help out with debugging these issues. Does this
> usually manifest itself as alignment errors?


This is an example from my local build with lots of debug code added:


[  65.7404377] Trapframe 0x178831ed0:   tstate: 4400000205      pc: 61502c 
npc: 615030
[  65.7404377] fault: 0x4400000205      y: fffffc26     pil: 0  oldpil: 0 
tt: 34
[  65.7404377] Globals:
[  65.7404377] 0000000000000000 0000000000000c06 0000000000000007 
0000000000000000
[  65.7404377] 0000000000000000 000000000061502c 0000000000000000 
0000000040952150
[  65.7404377] Outs:
[  65.7404377] 0000000000000000 0000000000000000 00000000ffffffff 
0000000000a23000
[  65.7404377] 0000000000a23000 0000000000000032 ffffffffffff9721 
0000000000615024
[  65.7404377] Locals:
[  65.7404377] 0000000040a50590 000000000badcafe 000000000badcafe 
000000000badcafe
[  65.7404377] 000000000badcafe 000000000badcafe 000000000badcafe 
000000000badcafe
[  65.7404377] Ins:
[  65.7404377] 0000000040a1ba10 ffffffffffffa190 00000000009e9000 
0000000040a0b000
[  65.7504412] 0000000000a23000 0000000000a23000 ffffffffffff98b1 
000000000012d84c
[  65.7504412] insn c205c000


The insn is a load instruction from register %l7 and the dump above has 
%l7 containing 0xbadecafe which will cause an unaligned access from 
address 0xbadcafe.

I have additional debugging output that shows that  the register window is 
probably restored with incorrect values probably originating from a spill 
trap at trap level 1 that stores the incorrect register window.


> I tried booting into single user mode, but init kept dying due
> to /bin/sh crashing with alignment errors. After trial and error, I
> realised if I copy /bin/sh from older NetBSD-9.4 system, the crash did
> not occurs and init started correctly.
>
> At this stage I'm not sure if this was the register corruption and
> older /bin/sh just happened to avoid it by executing slightly different
> code paths, or if there are some real alignment issues with /bin/sh in
> -current.
>

I don't think any of the userland code is the origin of the issue - the 
issue is within the kernel handling of spill traps - probably executed 
during trap level 1 scenarios.


More debugging to be done, but my understading of the issue has improved 
during the past weeks... :-)