All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>
To: dirk.brandewie@gmail.com
Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
	rjw@rjwysocki.net, patrick.marlier@gmail.com,
	viresh.kumar@linaro.org,
	Dirk Brandewie <dirk.j.brandewie@intel.com>
Subject: Re: [PATCH 2/2] intel_pstate: Set core to min P state during core offline
Date: Wed, 19 Mar 2014 00:38:41 +0530	[thread overview]
Message-ID: <532899B9.70306@linux.vnet.ibm.com> (raw)
In-Reply-To: <1395163361-26380-3-git-send-email-dirk.j.brandewie@intel.com>

On 03/18/2014 10:52 PM, dirk.brandewie@gmail.com wrote:
> From: Dirk Brandewie <dirk.j.brandewie@intel.com>
> 
> Change to use ->exit_prepare() callback to do clean up during CPU

->stop()

> hotplug. The requested P state for an offline core will be used by the
> hardware coordination function to select the package P state. If the
> core is under load when it is offlined it will fix the package P state
> floor to the requested P state of offline core.
> 
> Reported-by: Patrick Marlier <patrick.marlier@gmail.com>
> Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com>
> ---
>  drivers/cpufreq/intel_pstate.c | 20 +++++++++++++-------
>  1 file changed, 13 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
> index 2cd36b9..e9092fd 100644
> --- a/drivers/cpufreq/intel_pstate.c
> +++ b/drivers/cpufreq/intel_pstate.c
> @@ -447,7 +447,7 @@ static void core_set_pstate(struct cpudata *cpudata, int pstate)
>  	if (limits.no_turbo)
>  		val |= (u64)1 << 32;
> 
> -	wrmsrl(MSR_IA32_PERF_CTL, val);
> +	wrmsrl_on_cpu(cpudata->cpu, MSR_IA32_PERF_CTL, val);
>  }
> 
>  static struct cpu_defaults core_params = {
> @@ -773,16 +773,22 @@ static int intel_pstate_verify_policy(struct cpufreq_policy *policy)
>  	return 0;
>  }
> 
> -static int intel_pstate_cpu_exit(struct cpufreq_policy *policy)
> +static int intel_pstate_cpu_stop(struct cpufreq_policy *policy)
>  {
> -	int cpu = policy->cpu;
> +	int cpu_num = policy->cpu;
> +	struct cpudata *cpu = all_cpu_data[cpu_num];
> +
> +	pr_info("intel_pstate CPU %d exiting\n", cpu_num);
> +
> +	del_timer(&all_cpu_data[cpu_num]->timer);
> +	intel_pstate_set_pstate(cpu, cpu->pstate.min_pstate);
> +	kfree(all_cpu_data[cpu_num]);
> +	all_cpu_data[cpu_num] = NULL;
>

I think it should be relatively simple to keep the intel_pstate_set_pstate()
here inside ->stop() and move the rest of the code to ->exit().

Regards,
Srivatsa S. Bhat
 
> -	del_timer(&all_cpu_data[cpu]->timer);
> -	kfree(all_cpu_data[cpu]);
> -	all_cpu_data[cpu] = NULL;
>  	return 0;
>  }
> 
> +
>  static int intel_pstate_cpu_init(struct cpufreq_policy *policy)
>  {
>  	struct cpudata *cpu;
> @@ -818,7 +824,7 @@ static struct cpufreq_driver intel_pstate_driver = {
>  	.setpolicy	= intel_pstate_set_policy,
>  	.get		= intel_pstate_get,
>  	.init		= intel_pstate_cpu_init,
> -	.exit		= intel_pstate_cpu_exit,
> +	.stop		= intel_pstate_cpu_stop,
>  	.name		= "intel_pstate",
>  };
> 

  reply	other threads:[~2014-03-18 19:08 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAKQMxzQhVz0QT6tV0PKFjXXpYpDbtnOBH=miARoeQhrvs2TKFQ@mail.gmail.com>
     [not found] ` <5320D05F.7050304@gmail.com>
     [not found]   ` <5320D12B.4040303@gmail.com>
2014-03-13  0:07     ` intel_pstate: Lower p-state when putting down CPU Rafael J. Wysocki
2014-03-13  4:56       ` Viresh Kumar
2014-03-13 21:39         ` Rafael J. Wysocki
2014-03-14 21:03       ` [PATCH v2 0/2] Add exit_prepare callback to the cpufreq_driver interface dirk.brandewie
2014-03-14 21:03         ` [PATCH v2 1/2] cpufreq: Add exit_prepare callback to " dirk.brandewie
2014-03-15  2:04           ` Rafael J. Wysocki
2014-03-18  5:43             ` Viresh Kumar
2014-03-14 21:03         ` [PATCH v2 2/2] intel_pstate: Set core to min P state during core offline dirk.brandewie
2014-03-18  5:44           ` Viresh Kumar
2014-03-18 15:01             ` Dirk Brandewie
2014-03-18 18:52               ` Srivatsa S. Bhat
2014-03-18 19:44                 ` Dirk Brandewie
2014-03-18 20:15                   ` Srivatsa S. Bhat
2014-03-19  5:20                   ` Viresh Kumar
2014-03-19 15:32                     ` Dirk Brandewie
2014-03-18 17:22         ` [PATCH v3 0/2] Add stop callback to the cpufreq_driver interface dirk.brandewie
2014-03-18 17:22           ` [PATCH 1/2] cpufreq: Add stop callback to " dirk.brandewie
2014-03-19  5:04             ` Viresh Kumar
2014-03-18 17:22           ` [PATCH 2/2] intel_pstate: Set core to min P state during core offline dirk.brandewie
2014-03-18 19:08             ` Srivatsa S. Bhat [this message]
2014-03-18 19:08           ` [PATCH v3 0/2] Add stop callback to the cpufreq_driver interface Srivatsa S. Bhat
2014-03-18 19:25             ` Dirk Brandewie
2014-03-18 20:04               ` Srivatsa S. Bhat
2014-03-19  0:53               ` Rafael J. Wysocki
2014-03-19  5:33                 ` Viresh Kumar
2014-03-19 14:01                   ` Rafael J. Wysocki
2014-03-19 13:49                     ` Viresh Kumar
2014-03-19 14:25                       ` Rafael J. Wysocki
2014-03-13 17:36 [PATCH 0/2] Add exit_prepare " dirk.brandewie
2014-03-13 17:36 ` [PATCH 2/2] intel_pstate: Set core to min P state during core offline dirk.brandewie
  -- strict thread matches above, loose matches on Subject: below --
2014-03-19 15:45 [PATCH v4 0/2] Add stop callback to the cpufreq_driver interface dirk.brandewie
2014-03-19 15:45 ` [PATCH 2/2] intel_pstate: Set core to min P state during core offline dirk.brandewie
2014-03-20  0:01   ` Viresh Kumar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=532899B9.70306@linux.vnet.ibm.com \
    --to=srivatsa.bhat@linux.vnet.ibm.com \
    --cc=dirk.brandewie@gmail.com \
    --cc=dirk.j.brandewie@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=patrick.marlier@gmail.com \
    --cc=rjw@rjwysocki.net \
    --cc=viresh.kumar@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.