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

Alok Kataria
2008-06-26T18:11:01Z

On Thu, 2008-06-26 at 10:35 -0700, Pavel Machek wrote:
> 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
How is it 1000 here ? shouldn't this be 1830.xx
> ...
> bogomips : 3657.54
>
> So you'd break it by setting lpj (aka bogomips) to cpu_khz, right?

We are not setting it to cpu_khz but to tsc_khz, i am assuming that in
this case tsc_khz will be different than cpu_khz. Can you please mail me
the full dmesg log.

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