Re: [PATCH] i386: Selectable Frequency of the Timer Interrupt

From: Linus Torvalds
Date: Fri Jul 15 2005 - 00:07:26 EST




On Fri, 15 Jul 2005, Jesper Juhl wrote:
>
> It's buggy, that I know. setting kernel_hz (the new boot parameter) to
> 250 causes my system clock to run at something like 4-5 times normal
> speed

4 times normal. You don't actually make the timer interrupt happen at
250Hz, so the timer will be programmed to run at the full 1kHz.

You also need to actually change the LATCH define (in
include/linux/jiffies.h) to take this into account (there might be
something else too).

So

/* LATCH is used in the interval timer and ftape setup. */
#define LATCH ((CLOCK_TICK_RATE + HZ/2) / HZ) /* For divider */

should become something like

/* LATCH is used in the interval timer and ftape setup. */
#define LATCH ((CLOCK_TICK_RATE*jiffies_increment + HZ/2) / HZ) /* For divider */

and you might be getting closer.

Of course, you need to make sure that LATCH is used only after
jiffies_increment is set up. See "setup_pit_timer(void)" in
arch/i386/kernel/timers/timer_pit.c for more details.

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/