summaryrefslogtreecommitdiffstats
path: root/UPDATING
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2011-06-08 08:12:15 +0000
committeravg <avg@FreeBSD.org>2011-06-08 08:12:15 +0000
commit74204e61b2bf85d1e0d861efb6350869bef8d5ba (patch)
tree76b1205a2910e2296d889196ecc53a537b4fc56c /UPDATING
parent9c3130fd8beafdb49ce265e2ed95dde63492dac1 (diff)
downloadFreeBSD-src-74204e61b2bf85d1e0d861efb6350869bef8d5ba.zip
FreeBSD-src-74204e61b2bf85d1e0d861efb6350869bef8d5ba.tar.gz
remove code for dynamic offlining/onlining of CPUs on x86
The code has definitely been broken for SCHED_ULE, which is a default scheduler. It may have been broken for SCHED_4BSD in more subtle ways, e.g. with manually configured CPU affinities and for interrupt devilery purposes. We still provide a way to disable individual CPUs or all hyperthreading "twin" CPUs before SMP startup. See the UPDATING entry for details. Interaction between building CPU topology and disabling CPUs still remains fuzzy: topology is first built using all availble CPUs and then the disabled CPUs should be "subtracted" from it. That doesn't work well if the resulting topology becomes non-uniform. This work is done in cooperation with Attilio Rao who in addition to reviewing also provided parts of code. PR: kern/145385 Discussed with: gcooper, ambrisko, mdf, sbruno Reviewed by: attilio Tested by: pho, pluknet X-MFC after: never
Diffstat (limited to 'UPDATING')
-rw-r--r--UPDATING17
1 files changed, 17 insertions, 0 deletions
diff --git a/UPDATING b/UPDATING
index 6010a96..c8c3582 100644
--- a/UPDATING
+++ b/UPDATING
@@ -22,6 +22,23 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.x IS SLOW:
machines to maximize performance. (To disable malloc debugging, run
ln -s aj /etc/malloc.conf.)
+20110608:
+ The following sysctls and tunables are retired on x86 platforms:
+ machdep.hlt_cpus
+ machdep.hlt_logical_cpus
+ The following sysctl is retired:
+ machdep.hyperthreading_allowed
+ The sysctls were supposed to provide a way to dynamically offline and
+ online selected CPUs on x86 platforms, but the implementation has not
+ been reliable especially with SCHED_ULE scheduler.
+ machdep.hyperthreading_allowed tunable is still available to ignore
+ hyperthreading CPUs at OS level.
+ Individual CPUs can be disabled using hint.lapic.X.disabled tunable,
+ where X is an APIC ID of a CPU. Be advised, though, that disabling
+ CPUs in non-uniform fashion will result in non-uniform topology and
+ may lead to sub-optimal system performance with SCHED_ULE, which is
+ a default scheduler.
+
20110607:
cpumask_t type is retired and cpuset_t is used in order to describe
a mask of CPUs.
OpenPOWER on IntegriCloud