diff options
| author | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2012-03-13 20:06:57 -0400 |
|---|---|---|
| committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2012-03-20 15:31:38 -0400 |
| commit | 48cdd8287f47a3cdad5b9273a5ef81bf605f7826 (patch) | |
| tree | 54fe14de42d138d232af36d4374d49fa4ef8dd10 | |
| parent | 448c8b1d07d5342922567e138a4b0108a42c24fb (diff) | |
xen/cpufreq: Disable the cpu frequency scaling drivers from loading.
By using the functionality provided by "[CPUFREQ]: provide
disable_cpuidle() function to disable the API."
Under the Xen hypervisor we do not want the initial domain to exercise
the cpufreq scaling drivers. This is b/c the Xen hypervisor is
in charge of doing this as well and we can end up with both the
Linux kernel and the hypervisor trying to change the P-states
leading to weird performance issues.
Acked-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
[v2: Fix compile error spotted by Benjamin Schweikert <b.schweikert@googlemail.com>]
| -rw-r--r-- | arch/x86/xen/setup.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index 12366238d07d..1ba8dff26753 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #include <linux/pm.h> | 10 | #include <linux/pm.h> |
| 11 | #include <linux/memblock.h> | 11 | #include <linux/memblock.h> |
| 12 | #include <linux/cpuidle.h> | 12 | #include <linux/cpuidle.h> |
| 13 | #include <linux/cpufreq.h> | ||
| 13 | 14 | ||
| 14 | #include <asm/elf.h> | 15 | #include <asm/elf.h> |
| 15 | #include <asm/vdso.h> | 16 | #include <asm/vdso.h> |
| @@ -420,6 +421,7 @@ void __init xen_arch_setup(void) | |||
| 420 | boot_cpu_data.hlt_works_ok = 1; | 421 | boot_cpu_data.hlt_works_ok = 1; |
| 421 | #endif | 422 | #endif |
| 422 | disable_cpuidle(); | 423 | disable_cpuidle(); |
| 424 | disable_cpufreq(); | ||
| 423 | WARN_ON(set_pm_idle_to_default()); | 425 | WARN_ON(set_pm_idle_to_default()); |
| 424 | fiddle_vdso(); | 426 | fiddle_vdso(); |
| 425 | } | 427 | } |
