On Wednesday 08 March 2006 16:15, Kris Kennaway wrote: > On Wed, Mar 08, 2006 at 03:04:33PM -0500, John Baldwin wrote: > > On Wednesday 08 March 2006 14:59, Kris Kennaway wrote: > > > i386 SMP server, up-to-date current: > > > > Yes, I know about this one and had sent a workaround to someone > > I thought. I think the real fix is that we need to disable > > interrupts in cpu_reset() (perhaps earlier, our whole SMP > > shutdown sequence needs thought I think, i.e. I think we > > need to IPI all the CPUs during a non-panic shutdown to ask > > them to go idle and block until that happens and then > > disable interrupts and finish the shutdown). > > OK, cool. I'm happy to test the workaround if you can find it. Here's a workaround from scratch: Index: vm_machdep.c =================================================================== RCS file: /usr/cvs/src/sys/i386/i386/vm_machdep.c,v retrieving revision 1.267 diff -u -r1.267 vm_machdep.c --- vm_machdep.c 14 Nov 2005 00:43:44 -0000 1.267 +++ vm_machdep.c 8 Mar 2006 21:29:48 -0000 _at__at_ -528,6 +528,7 _at__at_ cpu_reset_proxy() { + disable_intr(); cpu_reset_proxy_active = 1; while (cpu_reset_proxy_active == 1) ; /* Wait for other cpu to see that we've started */ _at__at_ -552,6 +553,7 _at__at_ #ifdef SMP u_int cnt, map; + disable_intr(); if (smp_active) { map = PCPU_GET(other_cpus) & ~stopped_cpus; if (map != 0) { -- John Baldwin <jhb_at_FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.orgReceived on Wed Mar 08 2006 - 20:31:01 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:53 UTC