|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86, cpufreq: Change powernow's CPB status immediately
>>> On 13.06.12 at 00:02, Boris Ostrovsky <boris.ostrovsky@xxxxxxx> wrote:
> +static int powernow_cpufreq_update (int cpuid,
> + struct cpufreq_policy *policy)
> +{
> + cpumask_t cpumask;
> +
> + if (!cpumask_test_cpu(cpuid, &cpu_online_map))
> + return -EINVAL;
> +
> + cpumask_clear(&cpumask);
> + cpumask_set_cpu(cpuid, &cpumask);
> +
> + on_selected_cpus(&cpumask, update_cpb, policy, 1);
Please of cpumask_of(cpuid) here, eliminating the need for a
cpumask_t local variable.
> +
> + return 0;
> }
>
> static int powernow_cpufreq_target(struct cpufreq_policy *policy,
> --- a/xen/drivers/cpufreq/utility.c Thu Jun 07 19:46:57 2012 +0100
> +++ b/xen/drivers/cpufreq/utility.c Tue Jun 12 23:56:10 2012 +0200
> @@ -390,22 +390,44 @@ int cpufreq_driver_getavg(unsigned int c
> return policy->cur;
> }
>
> -void cpufreq_enable_turbo(int cpuid)
> +int cpufreq_enable_turbo(int cpuid)
> {
> struct cpufreq_policy *policy;
> + int ret = 0;
>
> policy = per_cpu(cpufreq_cpu_policy, cpuid);
> - if (policy && policy->turbo != CPUFREQ_TURBO_UNSUPPORTED)
> + if (policy && policy->turbo == CPUFREQ_TURBO_DISABLED)
> + {
> policy->turbo = CPUFREQ_TURBO_ENABLED;
> + if (cpufreq_driver->update)
> + {
> + ret = cpufreq_driver->update(cpuid, policy);
> + if (ret)
> + policy->turbo = CPUFREQ_TURBO_DISABLED;
> + }
> + }
> +
> + return ret;
If you introduce an error indicator here and below, shouldn't
CPUFREQ_TURBO_UNSUPPORTED also result in e.g. -EOPNOTSUPP
(and perhaps the policy == NULL case produce -EACCESS)?
Jan
> }
>
> -void cpufreq_disable_turbo(int cpuid)
> +int cpufreq_disable_turbo(int cpuid)
> {
> struct cpufreq_policy *policy;
> + int ret = 0;
>
> policy = per_cpu(cpufreq_cpu_policy, cpuid);
> - if (policy && policy->turbo != CPUFREQ_TURBO_UNSUPPORTED)
> + if (policy && policy->turbo == CPUFREQ_TURBO_ENABLED)
> + {
> policy->turbo = CPUFREQ_TURBO_DISABLED;
> + if (cpufreq_driver->update)
> + {
> + ret = cpufreq_driver->update(cpuid, policy);
> + if (ret)
> + policy->turbo = CPUFREQ_TURBO_ENABLED;
> + }
> + }
> +
> + return ret;
> }
>
> int cpufreq_get_turbo_status(int cpuid)
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |