All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Len Brown <lenb@kernel.org>
Cc: linux-pm@lists.linux-foundation.org,
	Len Brown <len.brown@intel.com>,
	xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org
Subject: Re: [Xen-devel] [PATCH 09/18] cpuidle: replace xen access to x86 pm_idle and default_idle
Date: Mon, 4 Apr 2011 11:33:35 -0400	[thread overview]
Message-ID: <20110404153335.GA19168@dumpdata.com> (raw)
In-Reply-To: <e2f656a28f548ed19c829563e5168ce48026570b.1301724243.git.len.brown@intel.com>

On Sat, Apr 02, 2011 at 02:22:51AM -0400, Len Brown wrote:
> From: Len Brown <len.brown@intel.com>
> 
> When a Xen Dom0 kernel boots on a hypervisor, it gets access
> to the raw-hardware ACPI tables.  While it parses the idle tables
> for the hypervisor's beneift, it uses HLT for its own idle.
> 
> Rather than have xen scribble on pm_idle and access default_idle,
> have it simply disable_cpuidle() so acpi_idle will not load and
> architecture default HLT will be used.
Hey Len,

Looks good to me. I've also tested this on the affected Intel machine and
your patchset works fine.

> 
> cc: xen-devel@lists.xensource.com
> Signed-off-by: Len Brown <len.brown@intel.com>
> ---
>  arch/x86/xen/setup.c      |    3 ++-
>  drivers/cpuidle/cpuidle.c |    4 ++++
>  include/linux/cpuidle.h   |    2 ++
>  3 files changed, 8 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
> index a8a66a5..aa02cce 100644
> --- a/arch/x86/xen/setup.c
> +++ b/arch/x86/xen/setup.c
> @@ -9,6 +9,7 @@
>  #include <linux/mm.h>
>  #include <linux/pm.h>
>  #include <linux/memblock.h>
> +#include <linux/cpuidle.h>
>  
>  #include <asm/elf.h>
>  #include <asm/vdso.h>
> @@ -354,7 +355,7 @@ void __init xen_arch_setup(void)
>  #ifdef CONFIG_X86_32
>  	boot_cpu_data.hlt_works_ok = 1;
>  #endif
> -	pm_idle = default_idle;
> +	disable_cpuidle();
>  	boot_option_idle_override = IDLE_HALT;
>  
>  	fiddle_vdso();
> diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
> index faae2c3..041df0b 100644
> --- a/drivers/cpuidle/cpuidle.c
> +++ b/drivers/cpuidle/cpuidle.c
> @@ -34,6 +34,10 @@ int cpuidle_disabled(void)
>  {
>  	return off;
>  }
> +void disable_cpuidle(void)
> +{
> +	off = 1;
> +}
>  
>  #if defined(CONFIG_ARCH_HAS_CPU_IDLE_WAIT)
>  static void cpuidle_kick_cpus(void)
> diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
> index 36719ea..b89f67d 100644
> --- a/include/linux/cpuidle.h
> +++ b/include/linux/cpuidle.h
> @@ -122,6 +122,7 @@ struct cpuidle_driver {
>  };
>  
>  #ifdef CONFIG_CPU_IDLE
> +extern void disable_cpuidle(void);
>  
>  extern int cpuidle_register_driver(struct cpuidle_driver *drv);
>  struct cpuidle_driver *cpuidle_get_driver(void);
> @@ -135,6 +136,7 @@ extern int cpuidle_enable_device(struct cpuidle_device *dev);
>  extern void cpuidle_disable_device(struct cpuidle_device *dev);
>  
>  #else
> +static inline void disable_cpuidle(void) { }
>  
>  static inline int cpuidle_register_driver(struct cpuidle_driver *drv)
>  {return -ENODEV; }
> -- 
> 1.7.5.rc0
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel

WARNING: multiple messages have this Message-ID (diff)
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Len Brown <lenb@kernel.org>
Cc: Len Brown <len.brown@intel.com>,
	linux-pm@lists.linux-foundation.org,
	xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 09/18] cpuidle: replace xen access to x86 pm_idle and default_idle
Date: Mon, 4 Apr 2011 11:33:35 -0400	[thread overview]
Message-ID: <20110404153335.GA19168@dumpdata.com> (raw)
In-Reply-To: <e2f656a28f548ed19c829563e5168ce48026570b.1301724243.git.len.brown@intel.com>

On Sat, Apr 02, 2011 at 02:22:51AM -0400, Len Brown wrote:
> From: Len Brown <len.brown@intel.com>
> 
> When a Xen Dom0 kernel boots on a hypervisor, it gets access
> to the raw-hardware ACPI tables.  While it parses the idle tables
> for the hypervisor's beneift, it uses HLT for its own idle.
> 
> Rather than have xen scribble on pm_idle and access default_idle,
> have it simply disable_cpuidle() so acpi_idle will not load and
> architecture default HLT will be used.
Hey Len,

Looks good to me. I've also tested this on the affected Intel machine and
your patchset works fine.

> 
> cc: xen-devel@lists.xensource.com
> Signed-off-by: Len Brown <len.brown@intel.com>
> ---
>  arch/x86/xen/setup.c      |    3 ++-
>  drivers/cpuidle/cpuidle.c |    4 ++++
>  include/linux/cpuidle.h   |    2 ++
>  3 files changed, 8 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
> index a8a66a5..aa02cce 100644
> --- a/arch/x86/xen/setup.c
> +++ b/arch/x86/xen/setup.c
> @@ -9,6 +9,7 @@
>  #include <linux/mm.h>
>  #include <linux/pm.h>
>  #include <linux/memblock.h>
> +#include <linux/cpuidle.h>
>  
>  #include <asm/elf.h>
>  #include <asm/vdso.h>
> @@ -354,7 +355,7 @@ void __init xen_arch_setup(void)
>  #ifdef CONFIG_X86_32
>  	boot_cpu_data.hlt_works_ok = 1;
>  #endif
> -	pm_idle = default_idle;
> +	disable_cpuidle();
>  	boot_option_idle_override = IDLE_HALT;
>  
>  	fiddle_vdso();
> diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
> index faae2c3..041df0b 100644
> --- a/drivers/cpuidle/cpuidle.c
> +++ b/drivers/cpuidle/cpuidle.c
> @@ -34,6 +34,10 @@ int cpuidle_disabled(void)
>  {
>  	return off;
>  }
> +void disable_cpuidle(void)
> +{
> +	off = 1;
> +}
>  
>  #if defined(CONFIG_ARCH_HAS_CPU_IDLE_WAIT)
>  static void cpuidle_kick_cpus(void)
> diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
> index 36719ea..b89f67d 100644
> --- a/include/linux/cpuidle.h
> +++ b/include/linux/cpuidle.h
> @@ -122,6 +122,7 @@ struct cpuidle_driver {
>  };
>  
>  #ifdef CONFIG_CPU_IDLE
> +extern void disable_cpuidle(void);
>  
>  extern int cpuidle_register_driver(struct cpuidle_driver *drv);
>  struct cpuidle_driver *cpuidle_get_driver(void);
> @@ -135,6 +136,7 @@ extern int cpuidle_enable_device(struct cpuidle_device *dev);
>  extern void cpuidle_disable_device(struct cpuidle_device *dev);
>  
>  #else
> +static inline void disable_cpuidle(void) { }
>  
>  static inline int cpuidle_register_driver(struct cpuidle_driver *drv)
>  {return -ENODEV; }
> -- 
> 1.7.5.rc0
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel

  parent reply	other threads:[~2011-04-04 15:33 UTC|newest]

Thread overview: 150+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-24  7:08 [PATCH 0/5] x86 idle cruft removal Len Brown
2011-03-24  7:08 ` [PATCH 1/5] x86 idle: remove "no-hlt" cmdline param Len Brown
2011-03-24  7:08   ` [PATCH 2/5] x86 idle: remove NOP cpuinfo_x86.hlt_works_ok flag Len Brown
2011-03-24  7:08   ` Len Brown
2011-03-24  7:08   ` [PATCH 3/5] x86 idle: remove NOP halt_works() Len Brown
2011-03-24  7:08   ` Len Brown
2011-03-24  7:08   ` [PATCH 4/5] x86 idle floppy: delete disable_hlt()/enable_hlt() Len Brown
2011-03-24 15:58     ` Andi Kleen
2011-03-24 15:58       ` Andi Kleen
2011-03-24  7:08   ` Len Brown
2011-03-24  7:08   ` [PATCH 5/5] x86 idle: remove NOP hlt_use_halt() Len Brown
2011-03-25 19:02     ` [linux-pm] " Vaidyanathan Srinivasan
2011-03-25 19:02     ` Vaidyanathan Srinivasan
2011-03-24  7:08   ` Len Brown
2011-03-24  7:08 ` [PATCH 1/5] x86 idle: remove "no-hlt" cmdline param Len Brown
2011-03-31  6:03 ` [PATCH 0/9] x86 idle cruft removal - v2 Len Brown
2011-03-31  6:03   ` [PATCH 1/9] x86 idle: remove "no-hlt" cmdline param Len Brown
2011-03-31  6:03   ` Len Brown
2011-03-31  6:03     ` [PATCH 2/9] x86 idle: remove NOP cpuinfo_x86.hlt_works_ok flag Len Brown
2011-03-31  6:12       ` Ingo Molnar
2011-03-31  7:02         ` Len Brown
2011-03-31  8:18           ` Ingo Molnar
2011-03-31  9:23             ` Alan Cox
2011-03-31  9:27               ` Ingo Molnar
2011-03-31  9:27               ` Ingo Molnar
2011-03-31  9:33                 ` Alan Cox
2011-03-31  9:33                 ` Alan Cox
2011-03-31  9:35                   ` Ingo Molnar
2011-03-31 14:19                     ` H. Peter Anvin
2011-03-31 14:41                       ` Alan Cox
2011-03-31 14:41                       ` Alan Cox
2011-03-31 15:09                         ` H. Peter Anvin
2011-03-31 15:09                         ` H. Peter Anvin
2011-03-31 14:19                     ` H. Peter Anvin
2011-03-31  9:35                   ` Ingo Molnar
2011-03-31  9:23             ` Alan Cox
2011-03-31 18:07             ` Len Brown
2011-03-31 18:28               ` H. Peter Anvin
2011-03-31 18:28               ` H. Peter Anvin
2011-03-31 18:07             ` Len Brown
2011-03-31  8:18           ` Ingo Molnar
2011-03-31  7:02         ` Len Brown
2011-03-31  6:12       ` Ingo Molnar
2011-03-31  6:03     ` Len Brown
2011-03-31  6:03     ` [PATCH 3/9] x86 idle: remove NOP halt_works() Len Brown
2011-03-31  6:03     ` Len Brown
2011-03-31  6:03     ` [PATCH 4/9] x86 idle floppy: delete disable_hlt()/enable_hlt() Len Brown
2011-03-31  6:03     ` Len Brown
2011-03-31  6:03     ` [PATCH 5/9] x86 idle: remove NOP hlt_use_halt() Len Brown
2011-03-31  6:03     ` Len Brown
2011-03-31  6:03     ` [PATCH 6/9] x86 idle APM: delete apm_cpu_idle(), and its use of (pm_idle)() Len Brown
2011-03-31  6:03     ` Len Brown
2011-03-31  6:03     ` [PATCH 7/9] x86 idle: do not EXPORT_SYMBOL pm_idle and default_idle Len Brown
2011-03-31  6:03     ` Len Brown
2011-03-31  6:03     ` [PATCH 8/9] x86 idle: move mwait_idle_with_hints() to where it is used Len Brown
2011-03-31  6:03     ` Len Brown
2011-03-31  6:03     ` [PATCH 9/9] x86 idle: delete mwait_idle() Len Brown
2011-03-31  6:03     ` Len Brown
2011-04-01 11:02       ` Andreas Herrmann
2011-04-01 11:02       ` Andreas Herrmann
2011-03-31  6:39   ` [PATCH 0/9] x86 idle cruft removal - v2 Trinabh Gupta
2011-03-31  6:39   ` [linux-pm] " Trinabh Gupta
2011-03-31  7:21     ` Len Brown
2011-03-31  7:21     ` Len Brown
2011-03-31  9:45   ` Alan Cox
2011-03-31 10:28     ` Ingo Molnar
2011-03-31 10:28     ` Ingo Molnar
2011-03-31  9:45   ` Alan Cox
2011-04-01  4:24   ` Len Brown
2011-04-01  9:38     ` Trinabh Gupta
2011-04-01  9:38     ` [linux-pm] " Trinabh Gupta
2011-04-01 18:33       ` Len Brown
2011-04-01 18:33       ` [linux-pm] " Len Brown
2011-04-02  6:22     ` idle cleanup - v3 Len Brown
2011-04-02  6:22       ` [PATCH 01/18] cpuidle: menu: fixed wrapping timers at 4.294 seconds Len Brown
2011-04-02  6:22       ` Len Brown
2011-04-02  6:22         ` [PATCH 02/18] x86 idle floppy: deprecate disable_hlt() Len Brown
2011-04-02  6:22           ` Len Brown
2011-04-02  6:22         ` [PATCH 03/18] x86 idle APM: deprecate CONFIG_APM_CPU_IDLE Len Brown
2011-04-02 11:28           ` Alan Cox
2011-04-02 18:28             ` Len Brown
2011-04-02 19:44               ` Alan Cox
2011-04-02 19:44               ` Alan Cox
2011-04-08  6:22               ` Pavel Machek
2011-04-08  6:22               ` Pavel Machek
2011-04-02 18:28             ` Len Brown
2011-04-02 11:28           ` Alan Cox
2011-04-02  6:22         ` Len Brown
2011-04-02  6:22         ` [PATCH 04/18] x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM demands it Len Brown
2011-04-02  6:22         ` Len Brown
2011-04-02 11:28           ` Alan Cox
2011-04-02 12:21             ` [linux-pm] " Trinabh Gupta
2011-04-02 12:21             ` Trinabh Gupta
2011-04-02 11:28           ` Alan Cox
2011-04-02  6:22         ` [PATCH 05/18] x86 idle: deprecate "no-hlt" cmdline param Len Brown
2011-04-02  6:22         ` Len Brown
2011-04-02  6:22         ` [PATCH 06/18] x86 idle: deprecate mwait_idle() and "idle=mwait" " Len Brown
2011-04-02  6:22         ` Len Brown
2011-04-02  6:22         ` [PATCH 07/18] x86 idle: clarify AMD erratum 400 workaround Len Brown
2011-04-02  8:23           ` Borislav Petkov
2011-04-02  8:23           ` Borislav Petkov
2011-04-02 19:19             ` Len Brown
2011-04-02 19:19             ` Len Brown
2011-04-02 19:22               ` [PATCH 07/18] x86 idle: clarify AMD erratum 400 workaround -v2 Len Brown
2011-04-02 19:22               ` Len Brown
2011-04-03  9:00                 ` Borislav Petkov
2011-04-03  9:00                 ` Borislav Petkov
2011-04-02  6:22         ` [PATCH 07/18] x86 idle: clarify AMD erratum 400 workaround Len Brown
2011-04-02  6:22         ` [PATCH 08/18] cpuidle: create bootparam "cpuidle.off=1" Len Brown
2011-07-15 11:27           ` Deepthi Dharwar
2011-07-15 11:27           ` [linux-pm] " Deepthi Dharwar
2011-04-02  6:22         ` Len Brown
2011-04-02  6:22         ` [PATCH 09/18] cpuidle: replace xen access to x86 pm_idle and default_idle Len Brown
2011-04-04 15:33           ` [Xen-devel] " Konrad Rzeszutek Wilk
2011-04-04 15:33           ` Konrad Rzeszutek Wilk [this message]
2011-04-04 15:33             ` Konrad Rzeszutek Wilk
2011-04-02  6:22         ` Len Brown
2011-04-02  6:22         ` [PATCH 10/18] x86 idle: move mwait_idle_with_hints() to where it is used Len Brown
2011-04-02  6:22           ` Len Brown
2011-04-02  6:22         ` [PATCH 11/18] cpuidle: stop using pm_idle Len Brown
2011-04-02  6:22         ` Len Brown
2011-04-25 10:41           ` Trinabh Gupta
2011-04-25 10:41           ` [linux-pm] " Trinabh Gupta
2011-04-02  6:22         ` [PATCH 12/18] 2.6.40: x86 idle: remove deprecated "no-hlt" cmdline param Len Brown
2011-04-02  6:22           ` Len Brown
2011-04-02  6:22         ` [PATCH 13/18] 2.6.40: x86 idle: remove deprecated "hlt_bug: no" in 32-bit /proc/cpuinfo Len Brown
2011-04-02  6:22         ` Len Brown
2011-04-02  6:22         ` [PATCH 14/18] 2.6.40: x86 idle floppy: remove deprecated disable_hlt()/enable_hlt() Len Brown
2011-04-02  6:22           ` Len Brown
2011-04-02  6:22         ` [PATCH 15/18] 2.6.40: x86 idle: remove deprecated hlt_use_halt() Len Brown
2011-04-02  6:22           ` Len Brown
2011-04-02  6:22         ` [PATCH 16/18] 2.6.40: x86 idle APM: remove deprecated apm_cpu_idle() Len Brown
2011-04-02 11:40           ` Alan Cox
2011-04-02 19:44             ` Len Brown
2011-04-02 21:00               ` Alan Cox
2011-04-03  2:48                 ` [linux-pm] " Trinabh Gupta
2011-04-04 10:05                   ` Alan Cox
2011-04-04 10:05                   ` [linux-pm] " Alan Cox
2011-04-03  2:48                 ` Trinabh Gupta
2011-04-02 21:00               ` Alan Cox
2011-04-02 19:44             ` Len Brown
2011-04-02 11:40           ` Alan Cox
2011-04-02  6:22         ` Len Brown
2011-04-02  6:22         ` [PATCH 17/18] 2.6.40: x86 idle: do not export default_idle() and (pm_idle)() Len Brown
2011-04-02  6:22         ` Len Brown
2011-04-02  6:23         ` [PATCH 18/18] 2.6.40: x86 idle: remove deprecated mwait_idle() Len Brown
2011-04-02  6:23         ` Len Brown
2011-04-02  6:22     ` idle cleanup - v3 Len Brown
2011-04-01  4:24   ` [PATCH 0/9] x86 idle cruft removal - v2 Len Brown
2011-03-31  6:03 ` Len Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110404153335.GA19168@dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=len.brown@intel.com \
    --cc=lenb@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.