[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [linux-2.6.18-xen] AMD PowerNow! in the Hypervisor



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1213980196 -3600
# Node ID 5201a184f5131c76f8263aa70c031c00dd094067
# Parent  b5ca56b48581e3e8ffc659d78f4aa725082c974c
AMD PowerNow! in the Hypervisor

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.

Signed-off-by: Mark Langsdorf <mark.langsdorf@xxxxxxx>
Acked-by: Conny Seidel <conny.seidel@xxxxxxx>
---
 arch/i386/kernel/cpu/cpufreq/powernow-k8.c |   10 ++++++++++
 drivers/acpi/processor_extcntl.c           |    1 +
 2 files changed, 11 insertions(+)

diff -r b5ca56b48581 -r 5201a184f513 arch/i386/kernel/cpu/cpufreq/powernow-k8.c
--- a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c        Tue Jun 17 10:32:02 
2008 +0100
+++ b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c        Fri Jun 20 17:43:16 
2008 +0100
@@ -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++;
diff -r b5ca56b48581 -r 5201a184f513 drivers/acpi/processor_extcntl.c
--- a/drivers/acpi/processor_extcntl.c  Tue Jun 17 10:32:02 2008 +0100
+++ b/drivers/acpi/processor_extcntl.c  Fri Jun 20 17:43:16 2008 +0100
@@ -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)
 {

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.