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>