xen/cpufreq: Disable the cpu frequency scaling drivers from loading.
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Wed, 14 Mar 2012 00:06:57 +0000 (20:06 -0400)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Tue, 20 Mar 2012 19:31:38 +0000 (15:31 -0400)
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>]

arch/x86/xen/setup.c

index 12366238d07d142d985ece62c23a205ea720b1b5..1ba8dff26753fb99460a3c33b17feab0ce11ed81 100644 (file)
@@ -10,6 +10,7 @@
 #include <linux/pm.h>
 #include <linux/memblock.h>
 #include <linux/cpuidle.h>
+#include <linux/cpufreq.h>
 
 #include <asm/elf.h>
 #include <asm/vdso.h>
@@ -420,6 +421,7 @@ void __init xen_arch_setup(void)
        boot_cpu_data.hlt_works_ok = 1;
 #endif
        disable_cpuidle();
+       disable_cpufreq();
        WARN_ON(set_pm_idle_to_default());
        fiddle_vdso();
 }