Date: Thu, 13 Aug 2009 17:09:45 +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: <200908131725.n7DHPvRf020830@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
attilio 2009-08-13 17:09:45 UTC
FreeBSD src repository
Modified files:
. 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 196196 on 2009-08-13 17:09:45Z by attilio
* 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.
* Adds 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.633 +6 -0 src/UPDATING
1.59 +11 -2 src/sys/amd64/amd64/local_apic.c
1.310 +31 -69 src/sys/amd64/amd64/mp_machdep.c
1.333 +0 -2 src/sys/amd64/amd64/trap.c
1.532 +0 -1 src/sys/amd64/conf/GENERIC
1.92 +0 -5 src/sys/amd64/conf/NOTES
1.4 +0 -1 src/sys/amd64/conf/XENHVM
1.30 +1 -5 src/sys/amd64/include/apicvar.h
1.97 +1 -4 src/sys/amd64/include/smp.h
1.36 +0 -1 src/sys/conf/options.amd64
1.245 +0 -1 src/sys/conf/options.i386
1.206 +0 -1 src/sys/conf/options.pc98
1.520 +0 -1 src/sys/i386/conf/GENERIC
1.1276 +0 -1 src/sys/i386/conf/NOTES
1.62 +11 -2 src/sys/i386/i386/local_apic.c
1.303 +30 -69 src/sys/i386/i386/mp_machdep.c
1.321 +0 -2 src/sys/i386/i386/trap.c
1.33 +2 -5 src/sys/i386/include/apicvar.h
1.100 +2 -4 src/sys/i386/include/smp.h
1.22 +0 -2 src/sys/i386/xen/mp_machdep.c
1.71 +2 -0 src/sys/ia64/ia64/interrupt.c
1.12 +1 -0 src/sys/ia64/include/smp.h
1.199 +7 -3 src/sys/kern/kern_shutdown.c
1.28 +4 -3 src/sys/kern/subr_kdb.c
1.215 +21 -4 src/sys/kern/subr_smp.c
1.3 +1 -0 src/sys/mips/include/smp.h
1.5 +6 -1 src/sys/mips/mips/mp_machdep.c
1.101 +0 -4 src/sys/pc98/conf/NOTES
1.6 +1 -0 src/sys/powerpc/include/smp.h
1.25 +7 -1 src/sys/powerpc/powerpc/mp_machdep.c
1.26 +1 -0 src/sys/sparc64/include/smp.h
1.7 +1 -0 src/sys/sun4v/include/smp.h
1.91 +1 -0 src/sys/sys/smp.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200908131725.n7DHPvRf020830>
