Mark Langsdorf
2008-Jun-20 15:36 UTC
[Xen-devel] [PATCH][1/2] AMD PowerNow! in the Hypervisor (dom0 changes)
This patch set moves support for AMD''s PowerNow! technology from dom0 into the hypervisor, now that there is support for transferring ACPI data to the hypervisor. It will only work for AMD processors that support the architectural P-state driver, such as 3rd generation Opterons, Phenoms, and Turion Ultras. This patch guarantees that the previous dom0 PowerNow! controller will not instantiate if the hypervisor PowerNow! controller is enabled. It should apply to current linux-2.6-xen.hg. -Mark Langsdorf Operating System Research Center AMD Signed-off-by: Mark Langsdorf <mark.langsdorf@amd.com> Acked-by: Conny Seidel <conny.seidel@amd.com> diff -r 105239038a17 drivers/acpi/processor_extcntl.c --- a/drivers/acpi/processor_extcntl.c Mon Jun 02 10:01:34 2008 +0100 +++ b/drivers/acpi/processor_extcntl.c Fri Jun 06 15:56:57 2008 -0500 @@ -37,6 +37,7 @@ static int processor_extcntl_get_perform * ops to get ACPI related notification. One example is like VMM. */ struct processor_extcntl_ops *processor_extcntl_ops; +EXPORT_SYMBOL(processor_extcntl_ops); static int processor_notify_smm(void) { diff -r 105239038a17 arch/i386/kernel/cpu/cpufreq/powernow-k8.c --- a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c Mon Jun 02 10:01:34 2008 +0100 +++ b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c Tue Jun 03 13:01:02 2008 -0500 @@ -1312,6 +1312,16 @@ static int __cpuinit powernowk8_init(voi { unsigned int i, supported_cpus = 0; +#ifdef CONFIG_XEN + /* + * This effectively blocks in-kernel cpufreq driver to interfere + * external control logic + */ + if (processor_pmperf_external()) { + return -ENODEV; + } +#endif /* CONFIG_XEN */ + for_each_online_cpu(i) { if (check_supported_cpu(i)) supported_cpus++; _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel