From: Wei Wang <wei.w.wang@intel.com>
To: jbeulich@suse.com, andrew.cooper3@citrix.com, xen-devel@lists.xen.org
Cc: Wei Wang <wei.w.wang@intel.com>
Subject: [PATCH v5 5/9] x86/intel_pstate: changes in cpufreq_del_cpu for CPU offline
Date: Mon, 14 Sep 2015 10:32:06 +0800 [thread overview]
Message-ID: <1442197930-3738-6-git-send-email-wei.w.wang@intel.com> (raw)
In-Reply-To: <1442197930-3738-1-git-send-email-wei.w.wang@intel.com>
We change to NULL the cpufreq_cpu_policy pointer after the call of
cpufreq_driver->exit, because the pointer is still needed in
intel_pstate_set_pstate().
Signed-off-by: Wei Wang <wei.w.wang@intel.com>
---
xen/drivers/cpufreq/cpufreq.c | 6 +++---
xen/include/acpi/cpufreq/cpufreq.h | 7 +++++++
2 files changed, 10 insertions(+), 3 deletions(-)
changes in v5:
1) put this patch prior to the "main body of intel pstate driver", which is
one of the acceptable options suggested by the Jan.
diff --git a/xen/drivers/cpufreq/cpufreq.c b/xen/drivers/cpufreq/cpufreq.c
index 0c437d4..5485944 100644
--- a/xen/drivers/cpufreq/cpufreq.c
+++ b/xen/drivers/cpufreq/cpufreq.c
@@ -334,12 +334,11 @@ int cpufreq_del_cpu(unsigned int cpu)
/* for HW_ALL, stop gov for each core of the _PSD domain */
/* for SW_ALL & SW_ANY, stop gov for the 1st core of the _PSD domain */
- if (hw_all || (cpumask_weight(cpufreq_dom->map) ==
- perf->domain_info.num_processors))
+ if (!policy->internal_gov && (hw_all || (cpumask_weight(cpufreq_dom->map) ==
+ perf->domain_info.num_processors)))
__cpufreq_governor(policy, CPUFREQ_GOV_STOP);
cpufreq_statistic_exit(cpu);
- per_cpu(cpufreq_cpu_policy, cpu) = NULL;
cpumask_clear_cpu(cpu, policy->cpus);
cpumask_clear_cpu(cpu, cpufreq_dom->map);
@@ -348,6 +347,7 @@ int cpufreq_del_cpu(unsigned int cpu)
free_cpumask_var(policy->cpus);
xfree(policy);
}
+ per_cpu(cpufreq_cpu_policy, cpu) = NULL;
/* for the last cpu of the domain, clean room */
/* It's safe here to free freq_table, drv_data and policy */
diff --git a/xen/include/acpi/cpufreq/cpufreq.h b/xen/include/acpi/cpufreq/cpufreq.h
index c6976d0..48bd94d 100644
--- a/xen/include/acpi/cpufreq/cpufreq.h
+++ b/xen/include/acpi/cpufreq/cpufreq.h
@@ -53,6 +53,12 @@ struct perf_limits {
uint32_t min_policy_pct;
};
+struct internal_governor {
+ char *avail_gov;
+ uint32_t gov_num;
+ uint32_t cur_gov;
+};
+
struct cpufreq_policy {
cpumask_var_t cpus; /* affected CPUs */
unsigned int shared_type; /* ANY or ALL affected CPUs
@@ -66,6 +72,7 @@ struct cpufreq_policy {
* governors are used */
struct perf_limits limits;
struct cpufreq_governor *governor;
+ struct internal_governor *internal_gov;
bool_t resume; /* flag for cpufreq 1st run
* S3 wakeup, hotplug cpu, etc */
--
1.9.1
next prev parent reply other threads:[~2015-09-14 2:32 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-14 2:32 [PATCH v5 0/9] Porting the intel_pstate driver to Xen Wei Wang
2015-09-14 2:32 ` [PATCH v5 1/9] x86/intel_pstate: add some calculation related support Wei Wang
2015-09-17 15:19 ` Andrew Cooper
2015-10-05 16:00 ` Jan Beulich
2015-09-14 2:32 ` [PATCH v5 2/9] x86/intel_pstate: APERF/MPERF feature detect Wei Wang
2015-09-17 15:26 ` Andrew Cooper
2015-10-05 16:14 ` Jan Beulich
2015-09-14 2:32 ` [PATCH v5 3/9] x86/intel_pstate: add a new driver interface, setpolicy() Wei Wang
2015-09-17 15:34 ` Andrew Cooper
2015-10-06 15:37 ` Jan Beulich
2015-09-14 2:32 ` [PATCH v5 4/9] x86/intel_pstate: relocate the driver register function Wei Wang
2015-09-17 15:38 ` Andrew Cooper
2015-09-21 13:13 ` Jan Beulich
2015-10-07 15:08 ` Jan Beulich
2015-09-14 2:32 ` Wei Wang [this message]
2015-09-17 15:43 ` [PATCH v5 5/9] x86/intel_pstate: changes in cpufreq_del_cpu for CPU offline Andrew Cooper
2015-10-07 15:28 ` Jan Beulich
2015-10-11 2:19 ` Wang, Wei W
2015-09-14 2:32 ` [PATCH v5 6/9] x86/intel_pstate: the main boby of the intel_pstate driver Wei Wang
2015-09-17 15:51 ` Andrew Cooper
2015-10-07 15:39 ` Jan Beulich
2015-09-14 2:32 ` [PATCH v5 7/9] x86/intel_pstate: add a booting param to select the driver to load Wei Wang
2015-09-17 16:08 ` Andrew Cooper
2015-09-21 13:15 ` Jan Beulich
2015-10-07 15:46 ` Jan Beulich
2015-10-23 8:09 ` Wang, Wei W
2015-10-23 8:16 ` Wang, Wei W
2015-10-23 8:18 ` Wang, Wei W
2015-10-23 8:35 ` Jan Beulich
2015-10-23 8:48 ` Wang, Wei W
2015-09-14 2:32 ` [PATCH v5 8/9] x86/intel_pstate: support the use of intel_pstate in pmstat.c Wei Wang
2015-10-07 16:10 ` Jan Beulich
2015-10-26 6:26 ` Wang, Wei W
2015-10-26 7:02 ` Jan Beulich
2015-10-26 7:59 ` Wang, Wei W
2015-10-26 9:40 ` Jan Beulich
2015-10-26 9:48 ` Wang, Wei W
2015-10-26 9:53 ` Jan Beulich
2015-10-26 10:19 ` Wang, Wei W
2015-10-26 10:35 ` Jan Beulich
2015-10-26 10:45 ` Wang, Wei W
2015-10-26 10:51 ` Jan Beulich
2015-10-26 11:03 ` Wang, Wei W
2015-09-14 2:32 ` [PATCH v5 9/9] tools: enable xenpm to control the intel_pstate driver Wei Wang
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=1442197930-3738-6-git-send-email-wei.w.wang@intel.com \
--to=wei.w.wang@intel.com \
--cc=andrew.cooper3@citrix.com \
--cc=jbeulich@suse.com \
--cc=xen-devel@lists.xen.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).