Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


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

     SMP -- description	of the FreeBSD Symmetric MultiProcessor	kernel

     options SMP

     The SMP kernel implements symmetric multiprocessor	support.

     Support for multi-processor systems is present for	all Tier-1 architec-
     tures on FreeBSD.	Currently, this	includes alpha,	i386, ia64, and
     sparc64.  Support is enabled using	options	SMP.  On most platforms	it is
     permissible to use	the SMP	kernel configuration on	non-SMP	equipped moth-
     erboards.	The only exception to this rule	is the i386 platform.

     For i386 systems, the SMP kernel supports motherboards that follow	the
     Intel MP specification, version 1.4.  In addition to options SMP, i386
     also requires options APIC_IO.  The mptable(1) command may	be used	to
     view the status of	multi-processor	support.

     FreeBSD supports hyperthreading on	Intel CPU's on the i386	platform.  By
     default, logical CPUs are not used	to execute user	processes due to per-
     formance penalties	under common loads.  To	allow the logical CPUs to exe-
     cute user processes, turn off the machdep.hlt_logical_cpus	sysctl by set-
     ting its value to zero.

     mptable(1), condvar(9), msleep(9),	mtx_pool(9), mutex(9), sema(9),	sx(9)

     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 re-
     liance 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 implementation	found in BSD/OS.

     FreeBSD 5.0 also introduced support for SMP on the	alpha, ia64, and
     sparc64 architectures.

     Steve Passe <>

BSD			       December	5, 2002				   BSD


Want to link to this manual page? Use this URL:

home | help