Core Duo - only one cpu being used

Scott Long scottl at samsco.org
Fri May 5 04:45:03 UTC 2006


Erich Dollansky wrote:
> Hi,
> 
> Eric Anderson wrote:
> 
>> Erich Dollansky wrote:
>>
>>> Hi,
>>>
>>> Eric Anderson wrote:
>>>
>>>>
>>>>   PID USERNAME    THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU 
>>>> COMMAND
>>>>    11 root          1 171   52     0K     8K CPU1   0   0:00 99.02% 
>>>> idle: cpu1
>>>>  2653 root          1 128    0 18564K 17560K RUN    0   0:01 34.00% 
>>>> cc1plus
>>>
>>>
>>> could it be that it is just a problem with top itself?
>>>
>>> It cannot be that CPU1 uses 99% for the idle process and 34% for the 
>>> compiler.
>>>
>>> Play with the other sort options. You might find the the idle process 
>>> for CPU0.
>>
>>
>> Is this what you want:
>>
>> $ ps -auxw | grep idle
>> root        11 99.0  0.0     0     8  ??  RL     7:45PM   0:00.00 
>> [idle: cpu1]
>> root        12  0.0  0.0     0     8  ??  RL     7:45PM  51:04.57 
>> [idle: cpu0]
>>
> something is really wrong here. CPU1 gets 99% of the time but uses then 
> only 0 seconds while CPU0 gets 0% of the time but uses 51 hours?

CPU1 is being treated as a hyperthreading core instead of a real core, 
and is being disabled per our policy on Intel hyperthreading.  By 
'disabled' I mean that it is started, but it is being excluded from
scheduling decisions, and thus is only running its idle proc.  It's
also handling any interrupts that come to it, such as timer and IPI
interrupts, so it's at 99% instead of 100% for the idle proc.  There
is nothing broken about the number you are seeing, your system is
just running under a scheduling policy that it should not be.

This should have been fixed a week or so ago by a commit to HEAD,
RELENG_6, and RELENG_6_1 by Colin Percival.  How old is kernel?

Scott


More information about the freebsd-hackers mailing list