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

Pavel Machek
2008-06-26T08:20:50Z

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.

Pavel

> @@ -421,6 +422,10 @@
> return;
> }
>
> + lpj = ((u64)tsc_khz * 1000);
> + do_div(lpj, HZ);
> + lpj_tsc = lpj;
> +
> printk("Detected %lu.%03lu MHz processor.\n",
> (unsigned long)cpu_khz / 1000,
> (unsigned long)cpu_khz % 1000);
>

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