Re: [PATCH] Dynamic tick for x86 version 050602-2

Pavel Machek
2005-06-03T22:38:24Z

Hi!

> Should be fixed now, the header was defining it as a function un UP
> system with no local apic. Can you try the following version?

Some comments below...

> @@ -102,6 +103,12 @@ fastcall unsigned int do_IRQ(struct pt_r
> );
> } else
> #endif
> +
> +#ifdef CONFIG_NO_IDLE_HZ
> + if (dyn_tick->state & (DYN_TICK_ENABLED | DYN_TICK_SKIPPING) && irq != 0)
> + dyn_tick->interrupt(irq, NULL, regs);
> +#endif
> +
> __do_IRQ(irq, regs);
>
> irq_exit();

Is not indentation little wrong here?

> Index: linux-dev/arch/i386/kernel/process.c
> ===================================================================
> --- linux-dev.orig/arch/i386/kernel/process.c 2005-06-01 17:51:36.000000000 -0700
> +++ linux-dev/arch/i386/kernel/process.c 2005-06-01 17:54:32.000000000 -0700
> @@ -160,6 +161,10 @@ void cpu_idle (void)
> if (!idle)
> idle = default_idle;
>
> +#ifdef CONFIG_NO_IDLE_HZ
> + dyn_tick_reprogram_timer();
> +#endif
> +
> __get_cpu_var(irq_stat).idle_timestamp = jiffies;
> idle();
> }

Your headers are good enough; this should not be neccessary.
> +
> +#define NS_TICK_LEN ((1 * 1000000000)/HZ)
> +#define DYN_TICK_MIN_SKIP 2
> +
> +#ifdef CONFIG_NO_IDLE_HZ
> +
> +extern unsigned long dyn_tick_reprogram_timer(void);
> +
> +#else
> +
> +#define arch_has_safe_halt() 0
> +#define dyn_tick_reprogram_timer() {}

do {} while (0)

, else you are preparing trap for someone.

> Index: linux-dev/kernel/dyn-tick.c
> ===================================================================
> --- /dev/null 1970-01-01 00:00:00.000000000 +0000
> +++ linux-dev/kernel/dyn-tick.c 2005-06-02 10:37:12.000000000 -0700
> @@ -0,0 +1,235 @@
> +/*
> + * linux/arch/i386/kernel/dyn-tick.c
> + *
> + * Beginnings of generic dynamic tick timer support
> + *
> + * Copyright (C) 2004 Nokia Corporation
> + * Written by Tony Lindgen <tony@atomide.com> and
> + * Tuukka Tikkanen <tuukka.tikkanen@elektrobit.com>
> + *

Heh, you work for Nokia? Can I get one of those nokia 770 toys? I
should have 100 euros somewhere here :-).
Pavel