Re: [RFC, PATCH 24/24] i386 Vmi no idle hz

From: Pavel Machek
Date: Wed Mar 15 2006 - 18:29:44 EST


Hi!

> When a VCPU enters its idle loop, it disables its periodic
> alarm and sets up a one shot alarm for the next time event.
> That way, it does not become ready to run just to service
> the periodic alarm interrupt. Instead, it can remain halted
> until there is some real work pending for it. This allows
> the hypervisor to use the physical resources more
> effectively since idle VCPUs will have lower overhead.

Does this NO_IDLE_HZ work only on VMI-enabled runs or globally? We are
trying to get NO_IDLE_HZ working to save some power on notebooks; how
is it related to this?

> @@ -579,6 +569,17 @@ static ctl_table kern_table[] = {
> .proc_handler = &proc_dointvec,
> },
> #endif
> +#if defined(CONFIG_NO_IDLE_HZ) && (defined(CONFIG_ARCH_S390) || \
> + defined(CONFIG_X86) && defined(CONFIG_X86_VMI))
> + {
> + .ctl_name = KERN_HZ_TIMER,
> + .procname = "hz_timer",
> + .data = &sysctl_hz_timer,
> + .maxlen = sizeof(int),
> + .mode = 0644,
> + .proc_handler = &proc_dointvec,
> + },
> +#endif
> {
> .ctl_name = KERN_PIDMAX,
> .procname = "pid_max",

But this seems to disable it for non-VMI machines :-(.

> Index: linux-2.6.16-rc6/include/asm-i386/mach-default/mach_idletimer.h
> ===================================================================
> --- linux-2.6.16-rc6.orig/include/asm-i386/mach-default/mach_idletimer.h 2006-03-12 19:57:53.000000000 -0800
> +++ linux-2.6.16-rc6/include/asm-i386/mach-default/mach_idletimer.h 2006-03-12 19:57:53.000000000 -0800
> @@ -0,0 +1,19 @@
> +
> +/*
> + * NO_IDLE_HZ callbacks.
> + */
> +
> +#ifndef __ASM_MACH_IDLETIMER_H
> +#define __ASM_MACH_IDLETIMER_H
> +
> +static inline void stop_hz_timer(void)
> +{
> +
> +}
> +
> +static inline void restart_hz_timer(struct pt_regs *regs)
> +{
> +
> +}
> +
> +#endif /* __ASM_MACH_IDLETIMER_H */

And I guess these would need to be implemented.

Can you use NO_IDLE_HZ patches that are already floating around?

Pavel


--
180: alg = Rijndael.Create();
-
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/