diff options
author | jhb <jhb@FreeBSD.org> | 2005-10-24 21:04:19 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2005-10-24 21:04:19 +0000 |
commit | 679189182ba97332545877c8fd12c498bf999146 (patch) | |
tree | 04996df9019db70b3f1461e4764af227922a6b5f /sys/conf | |
parent | b0356550ccf33cb4d4dac4a3541b70cf4a954071 (diff) | |
download | FreeBSD-src-679189182ba97332545877c8fd12c498bf999146.zip FreeBSD-src-679189182ba97332545877c8fd12c498bf999146.tar.gz |
Rename the KDB_STOP_NMI kernel option to STOP_NMI and make it apply to all
IPI_STOP IPIs.
- Change the i386 and amd64 MD IPI code to send an NMI if STOP_NMI is
enabled if an attempt is made to send an IPI_STOP IPI. If the kernel
option is enabled, there is also a sysctl to change the behavior at
runtime (debug.stop_cpus_with_nmi which defaults to enabled). This
includes removing stop_cpus_nmi() and making ipi_nmi_selected() a
private function for i386 and amd64.
- Fix ipi_all(), ipi_all_but_self(), and ipi_self() on i386 and amd64 to
properly handle bitmapped IPIs as well as IPI_STOP IPIs when STOP_NMI is
enabled.
- Fix ipi_nmi_handler() to execute the restart function on the first CPU
that is restarted making use of atomic_readandclear() rather than
assuming that the BSP is always included in the set of restarted CPUs.
Also, the NMI handler didn't clear the function pointer meaning that
subsequent stop and restarts could execute the function again.
- Define a new macro HAVE_STOPPEDPCBS on i386 and amd64 to control the use
of stoppedpcbs[] and always enable it for i386 and amd64 instead of
being dependent on KDB_STOP_NMI. It works fine in both the NMI and
non-NMI cases.
Diffstat (limited to 'sys/conf')
-rw-r--r-- | sys/conf/options.amd64 | 2 | ||||
-rw-r--r-- | sys/conf/options.i386 | 2 | ||||
-rw-r--r-- | sys/conf/options.pc98 | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/sys/conf/options.amd64 b/sys/conf/options.amd64 index fdbc8f8..7b115ef 100644 --- a/sys/conf/options.amd64 +++ b/sys/conf/options.amd64 @@ -57,4 +57,4 @@ PSM_DEBUG opt_psm.h DEV_ATPIC opt_atpic.h # Debugging -KDB_STOP_NMI opt_kdb.h +STOP_NMI opt_cpu.h diff --git a/sys/conf/options.i386 b/sys/conf/options.i386 index 8ad0b8b..7dafd5e 100644 --- a/sys/conf/options.i386 +++ b/sys/conf/options.i386 @@ -161,5 +161,5 @@ DEV_NPX opt_npx.h ASR_COMPAT opt_asr.h # Debugging -KDB_STOP_NMI opt_kdb.h +STOP_NMI opt_cpu.h NPX_DEBUG opt_npx.h diff --git a/sys/conf/options.pc98 b/sys/conf/options.pc98 index f50c867..a1f3cc1 100644 --- a/sys/conf/options.pc98 +++ b/sys/conf/options.pc98 @@ -103,5 +103,5 @@ DEV_MECIA opt_mecia.h DEV_NPX opt_npx.h # Debugging -KDB_STOP_NMI opt_kdb.h +STOP_NMI opt_cpu.h NPX_DEBUG opt_npx.h |