diff options
author | avg <avg@FreeBSD.org> | 2011-06-08 08:12:15 +0000 |
---|---|---|
committer | avg <avg@FreeBSD.org> | 2011-06-08 08:12:15 +0000 |
commit | 74204e61b2bf85d1e0d861efb6350869bef8d5ba (patch) | |
tree | 76b1205a2910e2296d889196ecc53a537b4fc56c /UPDATING | |
parent | 9c3130fd8beafdb49ce265e2ed95dde63492dac1 (diff) | |
download | FreeBSD-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-- | UPDATING | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -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. |