summaryrefslogtreecommitdiffstats
path: root/sys/conf
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2009-08-13 17:09:45 +0000
committerattilio <attilio@FreeBSD.org>2009-08-13 17:09:45 +0000
commite85ca71aadcc42a3f7cc90e6cff96c28f1c54290 (patch)
treefa01b2cb8792e972d05922a5507e082efa4d4c1d /sys/conf
parentb1786d80d2f6e85141431d158b4cf3a47a2f71ec (diff)
downloadFreeBSD-src-e85ca71aadcc42a3f7cc90e6cff96c28f1c54290.zip
FreeBSD-src-e85ca71aadcc42a3f7cc90e6cff96c28f1c54290.tar.gz
* 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)
Diffstat (limited to 'sys/conf')
-rw-r--r--sys/conf/options.amd641
-rw-r--r--sys/conf/options.i3861
-rw-r--r--sys/conf/options.pc981
3 files changed, 0 insertions, 3 deletions
diff --git a/sys/conf/options.amd64 b/sys/conf/options.amd64
index 5247921..beb97ed 100644
--- a/sys/conf/options.amd64
+++ b/sys/conf/options.amd64
@@ -52,7 +52,6 @@ PSM_DEBUG opt_psm.h
DEV_ATPIC opt_atpic.h
# Debugging
-STOP_NMI opt_cpu.h
KDTRACE_FRAME opt_kdtrace.h
# BPF just-in-time compiler
diff --git a/sys/conf/options.i386 b/sys/conf/options.i386
index 45a1637..cd2ab98 100644
--- a/sys/conf/options.i386
+++ b/sys/conf/options.i386
@@ -110,7 +110,6 @@ ASR_COMPAT opt_asr.h
# Debugging
NPX_DEBUG opt_npx.h
-STOP_NMI opt_cpu.h
# BPF just-in-time compiler
BPF_JITTER opt_bpf.h
diff --git a/sys/conf/options.pc98 b/sys/conf/options.pc98
index 837169b..dca3d69 100644
--- a/sys/conf/options.pc98
+++ b/sys/conf/options.pc98
@@ -95,7 +95,6 @@ DEV_NPX opt_npx.h
# Debugging
NPX_DEBUG opt_npx.h
-STOP_NMI opt_cpu.h
AGP_DEBUG opt_agp.h
# BPF just-in-time compiler
OpenPOWER on IntegriCloud