Messages in this thread |  | | Date | Mon, 7 Apr 2008 14:16:03 +0100 | From | "Jack Harvard" <> | Subject | Re: How does Linux measure CPU frequency? |
| |
On Sun, Apr 6, 2008 at 5:37 PM, dean gaudet <dean@arctic.org> wrote: > linux knows what style of cpu it is running on and uses non-portable > techniques to read the time-stamp counter. > > lmbench uses some really nice tricks to estimate the cpu frequency in a > portable manner... all it requires is that at least two of the N code > sequences it times take a co-prime number of cycles.
The MHZ measures time by gettimeofday( ), and this assumes that the function gettimeofday( ) returns the actual real-world time elapse in microseconds, instead of some scaled time. What I mean here by scaled time is, Linux kernel keeps time by reading a counter which is increased by one when an interrupt is generated from a physical timer, and Linux defines the default HZ = 100 which means an interrupt is generated every 10 milliseconds, but without knowing which clock the physical timer is clocked at it is impossible to correctly measure 10 milliseconds by the timer. Therefore, the results from MHZ could be scaled? please correct me if I am wrong.
And, I believe this is the same case for Linux TSC (time stamp counter), as the time constant of ~50ms is also measured by a programmable interval timer which can also be scaled.
> > -dean > > > > On Sun, 6 Apr 2008, Jack Harvard wrote: > > > Hi, > > > > I want to find out how Linux calibrates the frequency of CPUs, and > > want to compare with the way how lmbench measures processor frequency. > > I had a thorough google search of this topic but didn't get too much > > useful results. > > > > Thanks a lot, > > Jack > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > > the body of a message to majordomo@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > Please read the FAQ at http://www.tux.org/lkml/ > > >
|  |