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

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

 



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

[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux