home | help
SMP(4)			     Kernel Interfaces Manual			  SMP(4)

NAME
     SMP -- description of the FreeBSD Symmetric Multi-Processor kernel

SYNOPSIS
     options SMP

DESCRIPTION
     The SMP kernel implements symmetric multi-processor support.

COMPATIBILITY
     Support for multi-processor systems is present for all Tier-1 architectures
     on FreeBSD.  Currently, this includes amd64, i386, ia64, and sparc64.  Sup-
     port is enabled using options SMP.  It is permissible to use the SMP kernel
     configuration on non-SMP equipped motherboards.

I386 NOTES
     For  i386 systems, the SMP kernel supports motherboards that follow the In-
     tel MP specification, version 1.4.  In addition to options SMP,  i386  also
     requires  device apic.  The mptable(1) command may be used to view the sta-
     tus of multi-processor support.

     The number of CPUs detected by the system is  available  in  the  read-only
     sysctl variable hw.ncpu.

     FreeBSD  allows  specific	CPUs on a multi-processor system to be disabled.
     The sysctl variable machdep.hlt_cpus is an integer bitmask denoting CPUs to
     halt, counting from 0.  Setting a bit to 1 will result in the corresponding
     CPU being disabled.

     FreeBSD supports hyperthreading on Intel CPU's on the i386 platform.  Since
     using logical CPUs can cause performance penalties under certain loads, the
     logical CPUs can be disabled by setting the machdep.hlt_logical_cpus sysctl
     to one.

SEE ALSO
     mptable(1),  sysctl(8),  condvar(9),  msleep(9),	mtx_pool(9),   mutex(9),
     sema(9), sx(9)

HISTORY
     The  SMP  kernel's early history is not (properly) recorded.  It was devel-
     oped in a separate CVS branch until April 26, 1997, at which point  it  was
     merged  into 3.0-current.	By this date 3.0-current had already been merged
     with Lite2 kernel code.

     FreeBSD 5.0 introduced support for a host	of  new  synchronization  primi-
     tives,  and a move towards fine-grained kernel locking rather than reliance
     on a Giant kernel lock.  The SMPng Project relied heavily on the support of
     BSDi, who provided reference source code from the fine-grained  SMP  imple-
     mentation found in BSD/OS.

     FreeBSD  5.0 also introduced support for SMP on the ia64 and sparc64 archi-
     tectures.

AUTHORS
     Steve Passe <fsmp@FreeBSD.org>

FreeBSD 7.2			December 17, 2004			  SMP(4)

home | help