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 alpha, amd64,
- i386, ia64, and
sparc64. Support is enabled using options SMP. It is per - missible to use
the SMP kernel configuration on non-SMP equipped mother - boards.
I386 NOTES
- For i386 systems, the SMP kernel supports motherboards that
- follow the
Intel MP specification, version 1.4. In addition to options
SMP
- also requires device apic. The mptable(1) command may be
- used to view
the status 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 un - der certain
loads, the logical CPUs can be disabled by setting the
machdep.hlt_logical_cpus sysctl to one.
SEE ALSO
HISTORY
- The SMP kernel's early history is not (properly) recorded.
- It was developed 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 al - ready been
merged with Lite2 kernel code. - FreeBSD 5.0 introduced support for a host of new synchro
- nization primitives, 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 implementation found in BSD/OS. - FreeBSD 5.0 also introduced support for SMP on the alpha,
- ia64, and
sparc64 architectures.
AUTHORS
- Steve Passe <fsmp@FreeBSD.org>
- BSD December 17, 2004