Subject: port-sparc/23298: SS20 panic mem_access_fault_4m (from cpu_switchto)
To: None <gnats-bugs@gnats.netbsd.org>
From: Jon Buller <jon@bullers.net>
List: netbsd-bugs
Date: 10/28/2003 16:47:17
>Number:         23298
>Category:       port-sparc
>Synopsis:       SS20 panic mem_access_fault_4m (from cpu_switchto)
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    port-sparc-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Oct 29 00:48:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        NetBSD 1.6ZD
>Organization:
	
>Environment:
System: NetBSD ra.bullers.net 1.6ZD NetBSD 1.6ZD (RA) #6: Tue Oct 28 00:09:04 PST 2003 jon@ra.bullers.net:/mnt/obj/usr/src/sys/arch/sparc/compile/RA sparc
Architecture: sparc
Machine: sparc
>Description:
	With "options MULTIPROCESSOR" in my kernel config, 1.6ZC
	and 1.6ZD will not boot, but end up in ddb with the following
	stack trace.

	cpu_debugger
	mem_access_fault_4m+0x11c
	cpu_switchto+0x194
	netbsd:snapshot+0x40

	This happens just after the kernel prints its message about
	IPSec and just before the first message about scsibus0.
	It does *NOT* happen with a GENERIC kernel, or when options
	MULTIPROCESSOR is commented out.  I also have no problems
	with my 1.6W kernel.
>How-To-Repeat:
	build the following kernel and boot it:

include 	"arch/sparc/conf/std.sparc"
maxusers	32
options 	SUN4M		
options 	BLINK
options 	RASTERCONSOLE		
options 	FONT_GALLANT12x22	
config		netbsd	root on ? type ?
options 	KTRACE
options 	SYSTRACE	
options 	SYSVMSG		
options 	SYSVSEM		
options 	SYSVSHM		
options 	LKM
options 	USERCONF	
options 	NFS_BOOT_DHCP
options 	DDB			
options 	DDB_HISTORY_SIZE=100	
options 	DDB_ONPANIC=1		
makeoptions	DEBUG="-g"
options		LOCKDEBUG	
options 	DIAGNOSTIC	
options 	SCSIVERBOSE
options 	UCONSOLE
options 	FDSCRIPTS
options 	SETUIDSCRIPTS
options 	COMPAT_16	
options 	COMPAT_43	
options 	COMPAT_SUNOS	
options 	COMPAT_SVR4	
file-system	FFS		
file-system	NFS		
file-system	KERNFS		
file-system	NULLFS		
file-system 	OVERLAY		
file-system	MFS		
file-system	FDESC		
file-system	UMAPFS		
file-system	PROCFS		
file-system	CD9660		
file-system	UNION		
file-system	MSDOSFS		
options 	NFSSERVER	
options 	QUOTA		
options 	SOFTDEP		
options 	INET		
options 	INET6		
options 	IPSEC		
options 	IPSEC_ESP	
options 	GATEWAY		
options 	MROUTING	
options 	DIRECTED_BROADCAST	
options 	NETATALK	
options 	NTP		
options 	PFIL_HOOKS	
options 	IPFILTER_LOG	
options 	PPP_BSDCOMP	
options 	PPP_DEFLATE	
options 	PPP_FILTER	
options		MULTIPROCESSOR
mainbus0 at root
cpu0	at mainbus0
cpu*	at mainbus0				
obio0	at mainbus0				
iommu0	at mainbus0				
sbus0	at iommu0				
auxreg0	at obio0				
power0	at obio0
clock0	at obio0				
memreg0	at obio0				
eccmemctl0 at mainbus0				
timer0	at obio0				
zs0	at obio0					
zstty0	at zs0 channel 0				
zstty1	at zs0 channel 1				
zs1	at obio0					
kbd0	at zs1 channel 0				
ms0	at zs1 channel 1				
bpp*	at sbus? slot ? offset ?
dma0	at sbus0 slot ? offset ?			
esp0	at dma0 flags 0x0000				
dma*	at sbus? slot ? offset ?			
esp*	at sbus? slot ? offset ? flags 0x0000		
esp*	at dma? flags 0x0000				
scsibus* at esp?
sd0	at scsibus? target 3 lun 0		
sd1	at scsibus? target 0 lun 0		
sd2	at scsibus? target 5 lun 0		
sd3	at scsibus? target 1 lun 0		
sd4	at scsibus? target 4 lun 0		
sd*	at scsibus? target ? lun ?		
st*	at scsibus? target ? lun ?		
cd*	at scsibus? target ? lun ?		
ch*	at scsibus? target ? lun ?		
ss*	at scsibus? target ? lun ?		
ses*	at scsibus? target ? lun ?		
uk*	at scsibus? target ? lun ?		
fdc0	at obio0				
fd*	at fdc0					
pseudo-device	vnd	4
le*		at sbus? slot ? offset ?		
ledma*		at sbus? slot ? offset ?		
le*		at ledma?				
lebuffer*	at sbus? slot ? offset ?		
le*		at lebuffer?				
pseudo-device	loop
pseudo-device	ppp		2
pseudo-device	tun		4
pseudo-device	bpfilter	8
pseudo-device	ipfilter
pseudo-device	gif		4	
pseudo-device	vlan
pseudo-device	bridge
cgsix0		at sbus? slot ? offset ?
cgsix*		at sbus? slot ? offset ?
cgfourteen0	at obio0			
options 	RAID_AUTOCONFIG
pseudo-device	raid		4	
pseudo-device	pty			
pseudo-device	rnd
pseudo-device	clockctl		


>Fix:
	Do not build with "options MULTIPROCESSOR" and (and let
	half of you SS20 go to waste) for a temporary workaround.
	A proper fix is unknown to me. Also I do not have a serial
	console on it at the moment, so the stack trace is hand
	copied off the screen.  (That is also why boot messages
	from from both working and non-working kernels are not
	present here.) I'll collect more information, setup a serial
	console and capture it, or try provided patches if that
	would be helpful.
>Release-Note:
>Audit-Trail:
>Unformatted: