Subject: Re: port-alpha/26159: Paused CPUs fail to halt when DDB reboot command executed
To: NetBSD/alpha Discussion List <port-alpha@NetBSD.ORG>
From: Greg A. Woods <woods@planix.com>
List: port-alpha
Date: 03/22/2005 18:18:45
I don't think this bug is 100% fixed yet.

I've applied the pullup from machdep.c: rev 1.283 to netbsd-1-6 and yet
both with 1.6.x and with -current (after that change was made) I still
_always_ see one (random) processor fail to shut down in time when doing
a halt or reboot from the system:

	[console]<@newpub> # halt -q
	syncing disks... done
	cpu0: waiting for secondary CPUs to halt...
	cpu3: shutting down...
	cpu2: shutting down...
	WARNING: Unable to halt secondary CPUs (0x3)
	halted.
	
	cpu1: shutting down...
	
	halted CPU 0
	
	halt code = 5
	HALT instruction executed
	PC = fffffc0000300128
	resetting all I/O buses
	P00>>>


It looks a little different sometimes when rebooting from DDB, but the
effect appears to be the same -- one processor sometimes shuts down
"late" (after the "rebooting..." message).  Note it doesn't always
happen from DDB though -- often all three say "shutting down" in quick
succession as expected.

	db{3}> reboot
	syncing disks... done
	cpu2: shutting down...
	cpu1: shutting down...
	cpu0: waiting for secondary CPUs to halt...
	rebooting...
	
	cpu3: shutting down...
	
	halted CPU 0
	
	halt code = 5
	HALT instruction executed
	PC = fffffc0000300128
	
	CPU 0 booting
	
	resetting all I/O buses
	
	RMC>halt in
	
	Returning to COM port
	
	Halt Button is IN, BOOT NOT POSSIBLE
	
	P00>>>

IIRC it also sometimes happens on my dual processor machines as well.



I'm wondering if maybe the cpus_paused flags should be cleared _before_
the call to alpha_broadcast_ipi(ALPHA_IPI_HALT)?

-- 
						Greg A. Woods

H:+1 416 218-0098  W:+1 416 489-5852 x122  VE3TCP  RoboHack <woods@robohack.ca>
Planix, Inc. <woods@planix.com>          Secrets of the Weird <woods@weird.com>