]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
The FreeBSD by default "disables" hyper-threading cores, by not scheduling
authorMaxim Sobolev <sobomax@FreeBSD.org>
Tue, 5 Sep 2006 17:15:24 +0000 (17:15 +0000)
committerMaxim Sobolev <sobomax@FreeBSD.org>
Tue, 5 Sep 2006 17:15:24 +0000 (17:15 +0000)
commit23da540855b85419840ea2223eca4a9ea36452e3
treeac500619f7776aa169cd5bd9d9440a35a6890b48
parentf031f0c03dde56be22d33517f39bcc3dbdf831ed
The FreeBSD by default "disables" hyper-threading cores, by not scheduling
any threads to them. However, it still counts those cores as "active but
permanently idle" when calculating system-wide CPUs statistics. It is
incorrect, since it skews statistics quite a bit and creates real problems
for certain types of applications (monitoring applications for example),
by making them believe that the system does have enough idle CPU resources,
while in fact it does not.

Correct the problem by not calling performance counting routines on "disabled"
cores. The cleaner solution would be to just disable APIC timer interrupts on
those cores completely, but ENOTIME here and it is not clear if the
additional complexity really worth minor performance gain.

Reviewed by: ssouhlal
Sponsored by: Sippy Software, Inc.
MFC after: 2 weeks
sys/amd64/amd64/local_apic.c
sys/i386/i386/local_apic.c