freebsd kernel with SKQ
Go to file
Robert Watson a632deec30 Add an "options MP_WATCHDOG" to i386. This option allows one of the
logical CPUs on a system to be used as a dedicated watchdog to cause a
drop to the debugger and/or generate an NMI to the boot processor if
the kernel ceases to respond.  A sysctl enables the watchdog running
out of the processor's idle thread; a callout is launched to reset a
timer in the watchdog.  If the callout fails to reset the timer for ten
seconds, the watchdog will fire.  The sysctl allows you to select which
CPU will run the watchdog.

A sample "debug.leak_schedlock" is included, which causes a sysctl to
spin holding sched_lock in order to trigger the watchdog.  On my Xeons,
the watchdog is able to detect this failure mode and break into the
debugger, which cannot otherwise be done without an NMI button.

This option does not currently work with sched_ule due to ule's push
notion of scheduling, similar to machdep.hlt_logical_cpus failing to
work with that scheduler.

On face value, this might seem somewhat inefficient, but there are a
lot of dual-processor Xeons with HTT around, so using one as a watchdog
for testing is not as inefficient as one might fear.
2004-08-15 18:02:09 +00:00
bin Change the behaviour of `-v' so that, e.g., stepping a month back 2004-08-09 13:43:39 +00:00
contrib Disable surplus detection of breakpoint event in signal stack, the check 2004-08-15 12:31:30 +00:00
crypto Add support for C3 Nehemiah ACE ("Padlock") AES crypto. This comes 2004-08-14 13:38:35 +00:00
etc Fix the startup logic for sendmail. If sendmail_enable=yes, don't start 2004-08-05 03:09:54 +00:00
games Correct grammo. 2004-08-14 06:29:17 +00:00
gnu Improve the usage. Without any arguments, kgdb(1) works on /dev/mem 2004-08-15 02:39:20 +00:00
include Stop defining '_Complex' in a C99 environment, it is supposed to be a keyword. 2004-08-14 18:03:21 +00:00
kerberos5 Join the 21st century: Cryptography is no longer an optional component 2004-08-06 07:27:08 +00:00
lib Add TLS support for i386 and amd64. 2004-08-15 16:28:05 +00:00
libexec Join the 21st century: Cryptography is no longer an optional component 2004-08-06 07:27:08 +00:00
release Remove misc/screen, which is not packageable. 2004-08-15 06:07:01 +00:00
rescue Remove dangling raidctl reference 2004-03-16 13:42:23 +00:00
sbin Avoid using void pointers in additive expressions. 2004-08-14 17:46:10 +00:00
secure Add support for C3 Nehemiah ACE ("Padlock") AES crypto. This comes 2004-08-14 13:38:35 +00:00
share - Make the naming of AMCC's 3ware cards consistent with the current 2004-08-15 17:40:06 +00:00
sys Add an "options MP_WATCHDOG" to i386. This option allows one of the 2004-08-15 18:02:09 +00:00
tools Replaced COPTS by equivalent CFLAGS. 2004-08-13 14:21:49 +00:00
usr.bin I was born in USSR. 2004-08-13 09:54:29 +00:00
usr.sbin A media type of floppy is detected automatically. 2004-08-15 13:00:07 +00:00
COPYRIGHT Update the COPYRIGHT file to include FreeBSD's compilation copyright 2003-12-31 22:35:22 +00:00
installworld_newk Commit the first set of files for changing time_t on freebsd/sparc64 2004-03-03 19:36:20 +00:00
installworld_oldk Commit the first set of files for changing time_t on freebsd/sparc64 2004-03-03 19:36:20 +00:00
MAINTAINERS Fix spelling. 2004-08-05 21:01:27 +00:00
Makefile Make make recurse into sub-directories and sub-makes when given 2004-08-09 11:38:41 +00:00
Makefile.inc1 Ensure that a new gensnmptree is built. This should fix the problems 2004-08-11 16:45:20 +00:00
README
UPDATING Add a note about RANDOM_IP_ID. 2004-08-14 16:16:01 +00:00
UPDATING.64BTT Add a tip for people who are using database-related ports on a sparc64 2004-03-17 01:59:47 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on:
$FreeBSD$

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree, the most
commonly used one being ``world'', which rebuilds and installs
everything in the FreeBSD system from the source tree except the
kernel, the kernel-modules and the contents of /etc.  The
``buildkernel'' and ``installkernel'' targets build and install
the kernel and the modules (see below).  Please see the top of
the Makefile in this directory for more information on the
standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process, documentation
for which can be found at:
   http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
And in the config(8) man page.
Note: If you want to build and install the kernel with the
``buildkernel'' and ``installkernel'' targets, you might need to build
world before.  More information is available in the handbook.

The sample kernel configuration files reside in the sys/<arch>/conf
sub-directory (assuming that you've installed the kernel sources), the
file named GENERIC being the one used to build your initial installation
kernel.  The file NOTES contains entries and documentation for all possible
devices, not just those commonly used.  It is the successor of the ancient
LINT file, but in contrast to LINT, it is not buildable as a kernel but a
pure reference and documentation file.


Source Roadmap:
---------------
bin		System/user commands.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

games		Amusements.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

sys		Kernel sources.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html