freebsd-dev/sys/conf
Attilio Rao be1057174e 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)
2009-08-13 17:54:11 +00:00
..
defines
files Merge the remainder of kern_vimage.c and vimage.h into vnet.c and 2009-08-01 19:26:27 +00:00
files.amd64 * Driver for ACPI WMI (Windows Management Instrumentation) 2009-06-23 13:17:25 +00:00
files.arm Switch to ath hal source code. Note this removes the ath_hal 2008-12-01 16:53:01 +00:00
files.i386 * Driver for ACPI WMI (Windows Management Instrumentation) 2009-06-23 13:17:25 +00:00
files.ia64 Add trivial implementation for the freebsd32_sysarch on ia64. 2009-04-01 19:23:07 +00:00
files.mips Add memmove() to the kernel, making the kernel compile with Clang. 2009-02-28 16:21:25 +00:00
files.pc98 MFi386: revision 192050 2009-05-14 16:01:29 +00:00
files.powerpc Add cpufreq support on the PowerPC G5, along with a skeleton SMU driver 2009-06-23 04:28:32 +00:00
files.sparc64 Add memmove() to the kernel, making the kernel compile with Clang. 2009-02-28 16:21:25 +00:00
files.sun4v Add memmove() to the kernel, making the kernel compile with Clang. 2009-02-28 16:21:25 +00:00
kern.mk Bump down the inline limit on MIPS. 2009-03-03 18:53:47 +00:00
kern.post.mk Always compute the root of the kernel source tree and explicitly pass it 2009-05-04 20:25:56 +00:00
kern.pre.mk Delete the old USB stack. The new stack has settled in and has all the 2009-05-27 16:16:56 +00:00
kmod_syms.awk
kmod.mk * Driver for ACPI WMI (Windows Management Instrumentation) 2009-06-23 13:17:25 +00:00
ldscript.amd64
ldscript.arm Create a non-elf pure binary version of the kernel as well. 2005-11-24 02:25:49 +00:00
ldscript.i386
ldscript.ia64
ldscript.mips Merge from p4: add Juniper license statement. 2008-09-19 03:36:37 +00:00
ldscript.mips.cfe Fix the CFE ldscript after the cutover to tradmips. 2008-10-13 06:07:58 +00:00
ldscript.powerpc Avoid hardcoding the kernel link address in the linker script. 2008-02-27 00:03:23 +00:00
ldscript.sparc64
Makefile.amd64 Add a kernel option for amd64 to compile with the frame on the stack 2008-05-23 03:52:55 +00:00
Makefile.arm Rename Marvell ARM CPU specific file according to r186933. 2009-01-09 10:55:33 +00:00
Makefile.i386 Revert config(8) version bump. It brings major pain for people working on 2007-05-16 17:23:54 +00:00
Makefile.ia64 Remove definition of the GCC3 variable. It was introduced in rev. 2007-06-02 21:30:39 +00:00
Makefile.mips Merge in the mips specific configuration files and such from the 2008-04-13 06:25:43 +00:00
Makefile.pc98 Revert config(8) version bump. It brings major pain for people working on 2007-05-16 17:23:54 +00:00
Makefile.powerpc Revert config(8) version bump. It brings major pain for people working on 2007-05-16 17:23:54 +00:00
Makefile.sparc64 Revert config(8) version bump. It brings major pain for people working on 2007-05-16 17:23:54 +00:00
Makefile.sun4v Revert config(8) version bump. It brings major pain for people working on 2007-05-16 17:23:54 +00:00
makeLINT.mk
makeLINT.sed
newvers.sh Prepare for the 8.0-BETA2 builds. 2009-07-15 17:29:05 +00:00
NOTES Update epair(4) to the new netisr implementation and polish 2009-07-26 12:20:07 +00:00
options Build on Jeff Roberson's linker-set based dynamic per-CPU allocator 2009-07-14 22:48:30 +00:00
options.amd64 MFC r196196: 2009-08-13 17:54:11 +00:00
options.arm add IXP4XX_FLASH_SIZE config knob that can be used to override the default 2009-03-10 21:49:22 +00:00
options.i386 MFC r196196: 2009-08-13 17:54:11 +00:00
options.ia64 Don't forget to create opt_agp.h on ia64, which also uses agp(4). 2009-02-07 09:57:14 +00:00
options.mips Consistently use <TAB> instead of spaces as option name and file 2009-02-06 10:30:46 +00:00
options.pc98 MFC r196196: 2009-08-13 17:54:11 +00:00
options.powerpc Initial support for Freescale PowerQUICC III MPC85xx system-on-chip family. 2008-03-03 17:17:00 +00:00
options.sparc64 Add a driver for Schizo' Fireplane/Safari to PCI 2.1 and Tomatillo' 2008-09-28 00:07:05 +00:00
options.sun4v Remove remnants from the sparc64 origin of this file and which are 2007-01-19 12:22:50 +00:00
systags.sh Use a simpler way to reach the <machine> include dir, which should 2005-12-03 21:37:54 +00:00