[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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();

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.