All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC]cpuidle: disable menu governor if nohz is disabled
@ 2011-08-31  1:56 Shaohua Li
  2011-08-31  2:22 ` Li, Aubrey
  2011-08-31  2:35 ` Arjan van de Ven
  0 siblings, 2 replies; 4+ messages in thread
From: Shaohua Li @ 2011-08-31  1:56 UTC (permalink / raw)
  To: Len Brown; +Cc: Arjan van de Ven, Li, Aubrey, linux acpi

Lenb,
Aubrey is asking me to fix the issue. So either we delete disable nohz
code or fix cpuidle. if you want to fix cpuidle, here it is.

Thanks,
SHaohua

Subject: cpuidle: disable menu governor if nohz is disabled

Aubrey is asking why nohz disables C-state. nohz has no dependency with idle,
but menu governor does. If nohz is disabled, using menu governor is pointless,
because we never get correct sleep length, so let's use ladder governor just
like nohz isn't compiled in.

Frankly, disabling nohz is strange, but in case somebody cares, here is the
fix.

Reported-by: Aubrey Li <aubrey.li@intel.com>
Signed-off-by: Shaohua Li <shaohua.li@intel.com>

diff --git a/drivers/cpuidle/governors/menu.c b/drivers/cpuidle/governors/menu.c
index c47f3d0..cbf9afa 100644
--- a/drivers/cpuidle/governors/menu.c
+++ b/drivers/cpuidle/governors/menu.c
@@ -408,6 +408,8 @@ static struct cpuidle_governor menu_governor = {
  */
 static int __init init_menu(void)
 {
+	if (!tick_nohz_enabled)
+		return 0;
 	return cpuidle_register_governor(&menu_governor);
 }
 
diff --git a/include/linux/tick.h b/include/linux/tick.h
index b232ccc..88895c7 100644
--- a/include/linux/tick.h
+++ b/include/linux/tick.h
@@ -126,6 +126,7 @@ extern void tick_nohz_restart_sched_tick(void);
 extern ktime_t tick_nohz_get_sleep_length(void);
 extern u64 get_cpu_idle_time_us(int cpu, u64 *last_update_time);
 extern u64 get_cpu_iowait_time_us(int cpu, u64 *last_update_time);
+extern int tick_nohz_enabled;
 # else
 static inline void tick_nohz_stop_sched_tick(int inidle) { }
 static inline void tick_nohz_restart_sched_tick(void) { }
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index d5097c4..6a270fe 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -105,7 +105,7 @@ static ktime_t tick_init_jiffy_update(void)
 /*
  * NO HZ enabled ?
  */
-static int tick_nohz_enabled __read_mostly  = 1;
+int tick_nohz_enabled __read_mostly  = 1;
 
 /*
  * Enable / Disable tickless mode



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* RE: [RFC]cpuidle: disable menu governor if nohz is disabled
  2011-08-31  1:56 [RFC]cpuidle: disable menu governor if nohz is disabled Shaohua Li
@ 2011-08-31  2:22 ` Li, Aubrey
  2011-08-31  2:35 ` Arjan van de Ven
  1 sibling, 0 replies; 4+ messages in thread
From: Li, Aubrey @ 2011-08-31  2:22 UTC (permalink / raw)
  To: Li, Shaohua, Len Brown; +Cc: Arjan van de Ven, linux acpi

this one works, thanks shaohua!

> -----Original Message-----
> From: Li, Shaohua
> Sent: Wednesday, August 31, 2011 9:56 AM
> To: Len Brown
> Cc: Arjan van de Ven; Li, Aubrey; linux acpi
> Subject: [RFC]cpuidle: disable menu governor if nohz is disabled
> 
> Lenb,
> Aubrey is asking me to fix the issue. So either we delete disable nohz code or fix
> cpuidle. if you want to fix cpuidle, here it is.
> 
> Thanks,
> SHaohua
> 
> Subject: cpuidle: disable menu governor if nohz is disabled
> 
> Aubrey is asking why nohz disables C-state. nohz has no dependency with idle,
> but menu governor does. If nohz is disabled, using menu governor is pointless,
> because we never get correct sleep length, so let's use ladder governor just like
> nohz isn't compiled in.
> 
> Frankly, disabling nohz is strange, but in case somebody cares, here is the fix.
> 
> Reported-by: Aubrey Li <aubrey.li@intel.com>
> Signed-off-by: Shaohua Li <shaohua.li@intel.com>
> 
> diff --git a/drivers/cpuidle/governors/menu.c
> b/drivers/cpuidle/governors/menu.c
> index c47f3d0..cbf9afa 100644
> --- a/drivers/cpuidle/governors/menu.c
> +++ b/drivers/cpuidle/governors/menu.c
> @@ -408,6 +408,8 @@ static struct cpuidle_governor menu_governor = {
>   */
>  static int __init init_menu(void)
>  {
> +	if (!tick_nohz_enabled)
> +		return 0;
>  	return cpuidle_register_governor(&menu_governor);
>  }
> 
> diff --git a/include/linux/tick.h b/include/linux/tick.h index b232ccc..88895c7
> 100644
> --- a/include/linux/tick.h
> +++ b/include/linux/tick.h
> @@ -126,6 +126,7 @@ extern void tick_nohz_restart_sched_tick(void);
>  extern ktime_t tick_nohz_get_sleep_length(void);  extern u64
> get_cpu_idle_time_us(int cpu, u64 *last_update_time);  extern u64
> get_cpu_iowait_time_us(int cpu, u64 *last_update_time);
> +extern int tick_nohz_enabled;
>  # else
>  static inline void tick_nohz_stop_sched_tick(int inidle) { }  static inline void
> tick_nohz_restart_sched_tick(void) { } diff --git a/kernel/time/tick-sched.c
> b/kernel/time/tick-sched.c index d5097c4..6a270fe 100644
> --- a/kernel/time/tick-sched.c
> +++ b/kernel/time/tick-sched.c
> @@ -105,7 +105,7 @@ static ktime_t tick_init_jiffy_update(void)
>  /*
>   * NO HZ enabled ?
>   */
> -static int tick_nohz_enabled __read_mostly  = 1;
> +int tick_nohz_enabled __read_mostly  = 1;
> 
>  /*
>   * Enable / Disable tickless mode
> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [RFC]cpuidle: disable menu governor if nohz is disabled
  2011-08-31  1:56 [RFC]cpuidle: disable menu governor if nohz is disabled Shaohua Li
  2011-08-31  2:22 ` Li, Aubrey
@ 2011-08-31  2:35 ` Arjan van de Ven
  2011-08-31  4:50   ` Shaohua Li
  1 sibling, 1 reply; 4+ messages in thread
From: Arjan van de Ven @ 2011-08-31  2:35 UTC (permalink / raw)
  To: Shaohua Li; +Cc: Len Brown, Li, Aubrey, linux acpi

On Wed, 31 Aug 2011 09:56:07 +0800
Shaohua Li <shaohua.li@intel.com> wrote:

> Lenb,
> Aubrey is asking me to fix the issue. So either we delete disable nohz
> code or fix cpuidle. if you want to fix cpuidle, here it is.
> 
> Thanks,
> SHaohua
> 
> Subject: cpuidle: disable menu governor if nohz is disabled
> 
> Aubrey is asking why nohz disables C-state. nohz has no dependency
> with idle, but menu governor does. If nohz is disabled, using menu
> governor is pointless, because we never get correct sleep length, so
> let's use ladder governor just like nohz isn't compiled in.
> 


I would prefer to not allow nohz.......



-- 
Arjan van de Ven 	Intel Open Source Technology Centre
For development, discussion and tips for power savings, 
visit http://www.lesswatts.org

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [RFC]cpuidle: disable menu governor if nohz is disabled
  2011-08-31  2:35 ` Arjan van de Ven
@ 2011-08-31  4:50   ` Shaohua Li
  0 siblings, 0 replies; 4+ messages in thread
From: Shaohua Li @ 2011-08-31  4:50 UTC (permalink / raw)
  To: Arjan van de Ven; +Cc: Len Brown, Li, Aubrey, linux acpi

On Wed, 2011-08-31 at 10:35 +0800, Arjan van de Ven wrote:
> On Wed, 31 Aug 2011 09:56:07 +0800
> Shaohua Li <shaohua.li@intel.com> wrote:
> 
> > Lenb,
> > Aubrey is asking me to fix the issue. So either we delete disable nohz
> > code or fix cpuidle. if you want to fix cpuidle, here it is.
> > 
> > Thanks,
> > SHaohua
> > 
> > Subject: cpuidle: disable menu governor if nohz is disabled
> > 
> > Aubrey is asking why nohz disables C-state. nohz has no dependency
> > with idle, but menu governor does. If nohz is disabled, using menu
> > governor is pointless, because we never get correct sleep length, so
> > let's use ladder governor just like nohz isn't compiled in.
> > 
> 
> 
> I would prefer to not allow nohz.......
is there any risk to do this? maybe lenb can answer why previous attempt
to do this failed.



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-08-31  4:48 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-31  1:56 [RFC]cpuidle: disable menu governor if nohz is disabled Shaohua Li
2011-08-31  2:22 ` Li, Aubrey
2011-08-31  2:35 ` Arjan van de Ven
2011-08-31  4:50   ` Shaohua Li

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.