cvs commit: src/sys/amd64/amd64 cpu_switch.S machdep.c

Nate Lawson nate at root.org
Tue Oct 18 14:38:44 PDT 2005


Poul-Henning Kamp wrote:
> In message <43553162.5040802 at root.org>, Nate Lawson writes:
> 
> 
>>>The TSC represents the clock rate of the CPU, and thus can vary wildly
>>>when thermal and power management controls kick in, and there is no way
>>>to know when it changes.  Because of this, I think that it's
>>>practically useless on Pentium-Mobile and Pentium-M chips, among many
>>>others. 
>>
>>This is a myth.
> 
> It isn't a myth.
> 
> As recent as this year chips have been sent on the market which
> will throttle their cpu-clock and TSC on certain chip stress
> conditions without giving any timely indication to any part of
> the BIOS or OS.

Does this refer to the p4tcc platform limit that I described or is it 
soemthing different?  In my analysis, the limit is set very high and 
should not be hit unless a fan fails.  This info seems to match my 
observations:

"Thermal Monitor controls the processor temperature by modulating 
(starting and stopping) the processor core clocks. Automatic and 
On-Demand modes are used to activate the thermal control circuit (TCC). 
When automatic mode is enabled, the TCC will activate only when the 
interanl die temperature is very near the temperature limits of the 
processor."

http://www.intel.com/cd/channel/reseller/asmo-na/eng/products/box_processors/mobile/celeron_m/technical_reference/97374.htm

For Prescott, the temp for automatic cut-in is around 72C.  We may be 
able to detect this on SMP systems via IPIs (I don't know which ones).

http://softwareforums.intel.com/ids/board/message?board.id=49&message.id=456

That doesn't mean we can ignore it, just that we don't have to optimize 
for that case.  When your CPU is about to melt down, having slower 
scheduling for a few seconds doesn't seem unreasonable.

> The solution to the context switch problem is _not_ to botch
> the timekeeping, the solution is to not _need_ the timekeeping.

Yes, I agree.  We need to fix context switching to not be 
binuptime()-based and separately improve TSC support so it can be used 
more often as a timecounter.

-- 
Nate


More information about the cvs-src mailing list