cvs commit: src/sys/i386/i386 local_apic.c src/sys/amd64/amd64 local_apic.c

Maxim Sobolev sobomax at
Tue Sep 5 10:15:35 PDT 2006

sobomax     2006-09-05 17:15:25 UTC

  FreeBSD src repository

  Modified files:
    sys/i386/i386        local_apic.c 
    sys/amd64/amd64      local_apic.c 
  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
  Revision  Changes    Path
  1.27      +10 -0     src/sys/amd64/amd64/local_apic.c
  1.29      +10 -0     src/sys/i386/i386/local_apic.c

More information about the cvs-src mailing list