[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <a72f6a3c0804070616p4c8cebfs2ad894e529ee904d@mail.gmail.com>
Date: Mon, 7 Apr 2008 14:16:03 +0100
From: "Jack Harvard" <jack.harvard@...glemail.com>
To: "dean gaudet" <dean@...tic.org>
Cc: linux-kernel@...r.kernel.org
Subject: Re: How does Linux measure CPU frequency?
On Sun, Apr 6, 2008 at 5:37 PM, dean gaudet <dean@...tic.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@...r.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
> >
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists