public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* how stable are the BogoMIPS and the udelay functions on "dynamic clock speed change cpus"
@ 2006-05-19  9:37 Yitzchak Eidus
  2006-05-22 11:32 ` Andi Kleen
  0 siblings, 1 reply; 2+ messages in thread
From: Yitzchak Eidus @ 2006-05-19  9:37 UTC (permalink / raw)
  To: linux-kernel

because udelay work on the principle that it know "how much work the
cpu can do in a time" and it work by just doing a loop of nothing, how
stable is it when the cpu clock rate is keep changing all the time?
does it update its loops_per_jiffy varible each time the cpu clock is change?
or does it have another solution to this problem?
or since before the cpu enter to this udelay function it must do some
work like entering the systemcall and so on , the cpu clock rate is
jump to the original?

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: how stable are the BogoMIPS and the udelay functions on "dynamic clock speed change cpus"
  2006-05-19  9:37 how stable are the BogoMIPS and the udelay functions on "dynamic clock speed change cpus" Yitzchak Eidus
@ 2006-05-22 11:32 ` Andi Kleen
  0 siblings, 0 replies; 2+ messages in thread
From: Andi Kleen @ 2006-05-22 11:32 UTC (permalink / raw)
  To: Yitzchak Eidus; +Cc: linux-kernel

"Yitzchak Eidus" <ieidus@gmail.com> writes:

> because udelay work on the principle that it know "how much work the
> cpu can do in a time" and it work by just doing a loop of nothing, how
> stable is it when the cpu clock rate is keep changing all the time?
> does it update its loops_per_jiffy varible each time the cpu clock is change?
> or does it have another solution to this problem?
> or since before the cpu enter to this udelay function it must do some
> work like entering the systemcall and so on , the cpu clock rate is
> jump to the original?

Only on very old systems (pre ACPI APM era) does cpu frequency change without
the kernel knowing (ignoring Intel thermal throttling which is a different thing) 

When the kernel knows it fixes loops_per_jiffy and normally does the necessary
synchronization over CPUs. 

Obviously at least on multi core systems there are races with this.

Modern Intel CPUs (Yonah, Prescott) completely avoid the problem
because they have a constantly ticking TSC that is independent from
the actual clock rate. And __delay uses the TSC to measure time.

-Andi

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-05-22 11:51 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-05-19  9:37 how stable are the BogoMIPS and the udelay functions on "dynamic clock speed change cpus" Yitzchak Eidus
2006-05-22 11:32 ` Andi Kleen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox