NetBSD-Bugs archive

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

Re: port-evbppc/57926: ppc405: lockdebug crash because cpu_index(curcpu()) is invalid (not 0) value.



The following reply was made to PR port-evbppc/57926; it has been noted by GNATS.

From: Kouichi Hashikawa <hashikaw%mail.ru@localhost>
To: gnats-bugs%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost
Cc: 
Subject: Re: port-evbppc/57926: ppc405: lockdebug crash because cpu_index(curcpu()) is invalid (not 0) value.
Date: Fri, 10 May 2024 22:08:17 +0900

 =EF=BB=BF
 
 cc -E src/external/gpl3/gcc/dist/libgcc/config/rs6000/crtresxgpr.S
 (version of gcc)
 
 ...
 .type _restgpr_29_x,@function; .globl _restgpr_29_x; _restgpr_29_x: .hidden=20=
 
 _restgpr_29_x; lwz 29,-12(11)
 .type _restgpr_30_x,@function; .globl _restgpr_30_x; _restgpr_30_x: .hidden=20=
 
 _restgpr_30_x; lwz 30,-8(11)
 .type _restgpr_31_x,@function; .globl _restgpr_31_x; _restgpr_31_x: .hidden=20=
 
 _restgpr_31_x; lwz 0,4(11)   <---
   lwz 31,-4(11)   <---
   mtlr 0
   mr 1,11
   blr
 ...
 
 cc -E src/sys/lib/libkern/arch/powerpc/gprsavrest.S
 (version of NetBSD)
 
 .hidden _restgpr_29_x; .text; .align 2; .globl _restgpr_29_x; .type=20
 _restgpr_29
 _x,@function; _restgpr_29_x:; lwz 29,(-4*(32-29))(11)
 .hidden _restgpr_30_x; .text; .align 2; .globl _restgpr_30_x; .type=20
 _restgpr_30
 _x,@function; _restgpr_30_x:; lwz 30,(-4*(32-30))(11)
 .hidden _restgpr_31_x; .text; .align 2; .globl _restgpr_31_x; .type=20
 _restgpr_31
 _x,@function; _restgpr_31_x:; lwz 31,(-4*(32-31))(11)   <---
 lwz 0,4(11)   <---
 mtlr 0
 mr 1,11
 blr
 
 I change gprsavrest.S's lwz 31,(-4)(11) and lwz 0,4(11), kernel works more=20=
 
 stable.
 (I change lwz 0,4(11); mtlr 0; mr 1,11 to comment like gcc's crtresgpr.S,=20=
 
 kernel works more stable...)
 
 I don't understand what's happening...
 
 # but hptide's udma is unstable(bus-master DMA error: missing interrupt),
 # pio-4 is almost stable, but stop on heavy load...
 
 
 
 



Home | Main Index | Thread Index | Old Index