Does FreeBSD support Symmetric Multiprocessing (SMP)?
Symmetric multi-processor (SMP) systems are generally supported by FreeBSD, although in some cases, BIOS or motherboard bugs may generate some problems. Perusing the FreeBSD symmetric multiprocessing mailing list may yield some clues. FreeBSD will take advantage of HyperThreading (HTT) support on Intel CPUs that support this feature. A kernel with the options SMP feature enabled will automatically detect the additional logical processors. The default FreeBSD scheduler treats the logical processors the same as additional physical processors; in other words, no attempt is made to optimize scheduling decisions given the shared resources between logical processors within the same CPU. Because this naive scheduling can result in suboptimal performance, under certain circumstances it may be useful to disable the logical processors with the machdep.hlt_logical_cpus sysctl variable. It is also possible to halt any CPU in the idle loop with the machdep.hlt_cpus sysctl variable. The smp(4) manua
Yes. SMP was enabled by default in the GENERIC kernel as of FreeBSD 5.2. The intention was also to enable it by default for the FreeBSD 5.3 release, but problems running the SMP kernel on certain UP machines led to the decision to disable it until those problems can be addressed. This is a priority for FreeBSD 5.4.
Symmetric multi-processor (SMP) systems are generally supported by FreeBSD, although in some cases, BIOS or motherboard bugs may generate some problems. Perusing the FreeBSD symmetric multiprocessing mailinglijst may yield some clues. FreeBSD will take advantage of HyperThreading (HTT) support on Intel CPUs that support this feature. A kernel with the options SMP feature enabled will automatically detect the additional logical processors. The default FreeBSD scheduler treats the logical processors the same as additional physical processors; in other words, no attempt is made to optimize scheduling decisions given the shared resources between logical processors within the same CPU. Because this naive scheduling can result in suboptimal performance, under certain circumstances it may be useful to disable the logical processors with the machdep.hlt_logical_cpus sysctl variable. It is also possible to halt any CPU in the idle loop with the machdep.hlt_cpus sysctl variable. The smp(4) manua