Re: PROBLEM: no cpu MHz in /proc/cpuinfo on 2.6.25.4-rt6

From: Arjan van de Ven
Date: Wed Jun 11 2008 - 13:45:22 EST


On Wed, 11 Jun 2008 12:59:24 -0400
Mark Hounschell <markh@xxxxxxxxxx> wrote:

> Arjan van de Ven wrote:
> > On Wed, 11 Jun 2008 10:14:50 -0400
> > "linux-os (Dick Johnson)" <linux-os@xxxxxxxxxxxx> wrote:
> >
> >> I use CPU frequency to scale the output of rdtsc when timing
> >> routines being optimized.
> >
> > Ok this is broken in various really bad ways.
> >
> > 1) CPU frequency is very fluctuating, it changes in principle every
> > millisecond or more
>
> I'm curious. What do you mean by "in principle"? And why will it
> change?

ondemand governor will change the cpu frequency dynamically all the
time.
the cpu itself has a dynamic range in which it operates (at least on
cpus that support Intel Dynamic Acceleration technology, IDA)

>
> > 2) the rdtsc "frequency" is conceptually unrelated to cpu
> > frequency. In fact, you'll be hard-pressed to buy a system today
> > where this relationship works....
> >
>
> And what do you mean by "conceptually unrelated to cpu frequency"?
> Is it not the clock freq that is driving the cpu and the freq at which
> the tsc is incremented?

no it is not that... at all.
the tsc comes from an entirely different clock, and on anything you can
buy today from AMD or Intel (or the last year for that matter), it's
fixed frequency (except in idle) irrespective of the frequency the CPU
is operating at!
it's a "time stamp counter" not a "cpu cycle counter". You can run
instructions faster than the tsc increment or slower. Or sometimes at
the same rate.
Which it is depends on what cpufreq/ondemand are doing and how active
IDA is.





--
If you want to reach me at my work email, use arjan@xxxxxxxxxxxxxxx
For development, discussion and tips for power savings,
visit http://www.lesswatts.org
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/