Date: Thu, 13 Aug 2009 17:54:11 +0000 (UTC) From: Attilio Rao <attilio@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src UPDATING src/sys/amd64/amd64 local_apic.c mp_machdep.c trap.c src/sys/amd64/conf GENERIC NOTES XENHVM src/sys/amd64/include apicvar.h smp.h src/sys/conf options.amd64 options.i386 options.pc98 src/sys/i386/conf GENERIC NOTES ... Message-ID: <200908131802.n7DI2Evs023633@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
attilio 2009-08-13 17:54:11 UTC FreeBSD src repository Modified files: (Branch: RELENG_8) . UPDATING sys/amd64/amd64 local_apic.c mp_machdep.c trap.c sys/amd64/conf GENERIC NOTES XENHVM sys/amd64/include apicvar.h smp.h sys/conf options.amd64 options.i386 options.pc98 sys/i386/conf GENERIC NOTES sys/i386/i386 local_apic.c mp_machdep.c trap.c sys/i386/include apicvar.h smp.h sys/i386/xen mp_machdep.c sys/ia64/ia64 interrupt.c sys/ia64/include smp.h sys/kern kern_shutdown.c subr_kdb.c subr_smp.c sys/mips/include smp.h sys/mips/mips mp_machdep.c sys/pc98/conf NOTES sys/powerpc/include smp.h sys/powerpc/powerpc mp_machdep.c sys/sparc64/include smp.h sys/sun4v/include smp.h sys/sys smp.h Log: SVN rev 196198 on 2009-08-13 17:54:11Z by attilio MFC r196196: * Completely remove the option STOP_NMI from the kernel. This option has proven to have a good effect when entering KDB by using a NMI, but it completely violates all the good rules about interrupts disabled while holding a spinlock in other occasions. This can be the cause of deadlocks on events where a normal IPI_STOP is expected. * Add an new IPI called IPI_STOP_HARD on all the supported architectures. This IPI is responsible for sending a stop message among CPUs using a privileged channel when disponible. In other cases it just does match a normal IPI_STOP. Right now the IPI_STOP_HARD functionality uses a NMI on ia32 and amd64 architectures, while on the other has a normal IPI_STOP effect. It is responsibility of maintainers to eventually implement an hard stop when necessary and possible. * Use the new IPI facility in order to implement a new userend SMP kernel function called stop_cpus_hard(). That is specular to stop_cpu() but it does use the privileged channel for the stopping facility. * Let KDB use the newly introduced function stop_cpus_hard() and leave stop_cpus() for all the other cases * Disable interrupts on CPU0 when starting the process of APs suspension. * Style cleanup and comments adding This patch should fix the reboot/shutdown deadlocks many users are constantly reporting on mailing lists. Please don't forget to update your config file with the STOP_NMI option removal Reviewed by: jhb Tested by: pho, bz, rink Approved by: re (kib) Revision Changes Path 1.632.2.3 +6 -0 src/UPDATING 1.58.2.2 +11 -2 src/sys/amd64/amd64/local_apic.c 1.309.2.2 +31 -69 src/sys/amd64/amd64/mp_machdep.c 1.332.2.2 +0 -2 src/sys/amd64/amd64/trap.c 1.531.2.2 +0 -1 src/sys/amd64/conf/GENERIC 1.91.2.2 +0 -5 src/sys/amd64/conf/NOTES 1.3.2.2 +0 -1 src/sys/amd64/conf/XENHVM 1.29.2.2 +1 -5 src/sys/amd64/include/apicvar.h 1.96.2.2 +1 -4 src/sys/amd64/include/smp.h 1.35.2.2 +0 -1 src/sys/conf/options.amd64 1.244.2.2 +0 -1 src/sys/conf/options.i386 1.205.2.2 +0 -1 src/sys/conf/options.pc98 1.519.2.2 +0 -1 src/sys/i386/conf/GENERIC 1.1275.2.2 +0 -1 src/sys/i386/conf/NOTES 1.61.2.2 +11 -2 src/sys/i386/i386/local_apic.c 1.302.2.2 +30 -69 src/sys/i386/i386/mp_machdep.c 1.320.2.2 +0 -2 src/sys/i386/i386/trap.c 1.32.2.2 +2 -5 src/sys/i386/include/apicvar.h 1.99.2.2 +2 -4 src/sys/i386/include/smp.h 1.21.2.2 +0 -2 src/sys/i386/xen/mp_machdep.c 1.70.2.2 +2 -0 src/sys/ia64/ia64/interrupt.c 1.11.2.2 +1 -0 src/sys/ia64/include/smp.h 1.198.2.2 +7 -3 src/sys/kern/kern_shutdown.c 1.27.2.2 +4 -3 src/sys/kern/subr_kdb.c 1.214.2.2 +21 -4 src/sys/kern/subr_smp.c 1.2.2.2 +1 -0 src/sys/mips/include/smp.h 1.4.2.2 +6 -1 src/sys/mips/mips/mp_machdep.c 1.100.2.2 +0 -4 src/sys/pc98/conf/NOTES 1.5.2.2 +1 -0 src/sys/powerpc/include/smp.h 1.24.2.2 +7 -1 src/sys/powerpc/powerpc/mp_machdep.c 1.25.2.2 +1 -0 src/sys/sparc64/include/smp.h 1.6.2.2 +1 -0 src/sys/sun4v/include/smp.h 1.90.2.2 +1 -0 src/sys/sys/smp.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200908131802.n7DI2Evs023633>