Re: [RFC PATCH] x86:Use cpu_khz for loops_per_jiffy calculation

Pavel Machek
2008-06-26T17:44:55Z

On Thu 2008-06-26 10:20:31, Alok Kataria wrote:
> On Tue, 2008-06-24 at 10:57 -0700, Pavel Machek wrote:
> > Hi!
> >
> > > On X86 platform we can use the value of tsc_khz computed during tsc calibration
> > > to calculate the loops_per_jiffy value. Its very important to keep the error in
> > > lpj values to minimum as any error in that may result in kernel panic in
> > > check_timer.
> > > In virtualization environment, On a highly overloaded host the guest delay
> > > calibration may sometimes result in errors beyond the ~50% that timer_irq_works
> > > can handle, resulting in the guest panicking.
> >
> > How did you adress 'khz has nothing to do with loops per jiffie'
> > comment?
> >
> > Some cpus can do loop in cycle , some need two cycles, some need half.
>
> Hi Pavel,
>
> When you say loops per jiffies has nothing to do with khz, by khz you
> mean the cpu frequency, right ?

Yes.

> AFAIU in calibrate_delay_direct too we measure the amount by which timer
> has ticked until DELAY_CALIBRATION_TICKS amount of jiffies has passed.
> So IMO the code there too assumes that there is one loop per timer
> cycle ?

On my machine, it reports:

delay using timer specific routine.. 3661.98 BogoMIPS (lpj=7323971)
...
Detected 1828.828 MHz processor.

(/proc/cpuinfo)
model name : Genuine Intel(R) CPU T2400 @ 1.83GHz
...
cpu MHz : 1000.000
...
bogomips : 3657.54

So you'd break it by setting lpj (aka bogomips) to cpu_khz, right?

Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html