ia64/linux-2.6.18-xen.hg

changeset 578:5201a184f513

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@amd.com>
Acked-by: Conny Seidel <conny.seidel@amd.com>
author Keir Fraser <keir.fraser@citrix.com>
date Fri Jun 20 17:43:16 2008 +0100 (2008-06-20)
parents b5ca56b48581
children 043dc7488c11
files arch/i386/kernel/cpu/cpufreq/powernow-k8.c drivers/acpi/processor_extcntl.c
line diff
     1.1 --- a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c	Tue Jun 17 10:32:02 2008 +0100
     1.2 +++ b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c	Fri Jun 20 17:43:16 2008 +0100
     1.3 @@ -1312,6 +1312,16 @@ static int __cpuinit powernowk8_init(voi
     1.4  {
     1.5  	unsigned int i, supported_cpus = 0;
     1.6  
     1.7 +#ifdef CONFIG_XEN
     1.8 +        /*
     1.9 +         * This effectively blocks in-kernel cpufreq driver to interfere
    1.10 +         * external control logic
    1.11 +         */
    1.12 +        if (processor_pmperf_external()) {
    1.13 +                return -ENODEV;
    1.14 +        }
    1.15 +#endif /* CONFIG_XEN */
    1.16 +
    1.17  	for_each_online_cpu(i) {
    1.18  		if (check_supported_cpu(i))
    1.19  			supported_cpus++;
     2.1 --- a/drivers/acpi/processor_extcntl.c	Tue Jun 17 10:32:02 2008 +0100
     2.2 +++ b/drivers/acpi/processor_extcntl.c	Fri Jun 20 17:43:16 2008 +0100
     2.3 @@ -37,6 +37,7 @@ static int processor_extcntl_get_perform
     2.4   * ops to get ACPI related notification. One example is like VMM.
     2.5   */
     2.6  struct processor_extcntl_ops *processor_extcntl_ops;
     2.7 +EXPORT_SYMBOL(processor_extcntl_ops);
     2.8  
     2.9  static int processor_notify_smm(void)
    2.10  {