From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: Linux PM list <linux-pm@vger.kernel.org>
Cc: Viresh Kumar <viresh.kumar@linaro.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Russell King - ARM Linux <linux@arm.linux.org.uk>
Subject: [PATCH 5/7] cpufreq: Do not update related_cpus on every policy activation
Date: Mon, 27 Jul 2015 16:06:54 +0200 [thread overview]
Message-ID: <3102455.P3lingtaHD@vostro.rjw.lan> (raw)
In-Reply-To: <3874727.Jpay9zgokc@vostro.rjw.lan>
From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
The related_cpus mask includes CPUs whose cpufreq_cpu_data per-CPU
pointers have been set to the given policy. Since those pointers
are only set at the policy creation time and unset when the policy
is deleted, the related_cpus should not be updated between those
two operations.
For this reason, avoid updating it whenever the first of the
"related" CPUs goes online.
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
drivers/cpufreq/cpufreq.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
Index: linux-pm/drivers/cpufreq/cpufreq.c
===================================================================
--- linux-pm.orig/drivers/cpufreq/cpufreq.c
+++ linux-pm/drivers/cpufreq/cpufreq.c
@@ -1251,12 +1251,12 @@ static int cpufreq_add_dev(struct device
down_write(&policy->rwsem);
- /* related cpus should atleast have policy->cpus */
- cpumask_or(policy->related_cpus, policy->related_cpus, policy->cpus);
-
- /* Remember which CPUs have been present at the policy creation time. */
- if (!recover_policy)
+ if (!recover_policy) {
+ /* related_cpus should at least include policy->cpus. */
+ cpumask_or(policy->related_cpus, policy->related_cpus, policy->cpus);
+ /* Remember CPUs present at the policy creation time. */
cpumask_and(policy->real_cpus, policy->cpus, cpu_present_mask);
+ }
/*
* affected cpus must always be the one, which are online. We aren't
next prev parent reply other threads:[~2015-07-27 13:44 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-23 0:00 [PATCH 0/2] cpufreq: Better separation of device addition/removal and online/offline paths Rafael J. Wysocki
2015-07-23 0:01 ` [PATCH 1/2] cpufreq: Rename two functions related to CPU offline Rafael J. Wysocki
2015-07-23 6:40 ` Viresh Kumar
2015-07-23 0:04 ` [PATCH 2/2] cpufreq: Separate CPU device removal from CPU online Rafael J. Wysocki
2015-07-23 6:39 ` Viresh Kumar
2015-07-23 20:56 ` Rafael J. Wysocki
2015-07-24 2:19 ` Viresh Kumar
2015-07-24 19:54 ` Rafael J. Wysocki
2015-07-27 14:01 ` [PATCH 0/7] cpufreq: Better separation of device addition/removal and online/offline paths Rafael J. Wysocki
2015-07-27 14:03 ` [PATCH 1/7] cpufreq: Rework two functions related to CPU offline Rafael J. Wysocki
2015-07-27 14:42 ` Viresh Kumar
2015-07-27 14:03 ` [PATCH 2/7] cpufreq: Drop cpufreq_policy_restore() Rafael J. Wysocki
2015-07-27 14:48 ` Viresh Kumar
2015-07-27 14:04 ` [PATCH 3/7] cpufreq: Drop unnecessary label from cpufreq_add_dev() Rafael J. Wysocki
2015-07-27 14:52 ` Viresh Kumar
2015-07-27 14:05 ` [PATCH 4/7] cpufreq: Drop unused dev argument from two functions Rafael J. Wysocki
2015-07-27 14:53 ` Viresh Kumar
2015-07-27 14:06 ` Rafael J. Wysocki [this message]
2015-07-27 14:56 ` [PATCH 5/7] cpufreq: Do not update related_cpus on every policy activation Viresh Kumar
2015-07-27 14:07 ` [PATCH 6/7] cpufreq: Pass CPU number to cpufreq_policy_alloc() Rafael J. Wysocki
2015-07-27 14:58 ` Viresh Kumar
2015-07-27 14:09 ` [PATCH 7/7] cpufreq: Separate CPU device removal from CPU online Rafael J. Wysocki
2015-07-27 15:06 ` Viresh Kumar
2015-07-27 20:56 ` Rafael J. Wysocki
2015-07-27 21:56 ` Rafael J. Wysocki
2015-07-28 2:06 ` Viresh Kumar
2015-07-28 14:22 ` Rafael J. Wysocki
2015-07-27 21:55 ` [Update][PATCH 7/7] cpufreq: Separate CPU device registration " Rafael J. Wysocki
2015-07-28 2:20 ` Viresh Kumar
2015-07-28 14:13 ` Rafael J. Wysocki
2015-07-29 1:03 ` [Update 2x][PATCH " Rafael J. Wysocki
2015-07-29 1:08 ` [PATCH] cpufreq: Replace recover_policy with new_policy in cpufreq_online() Rafael J. Wysocki
2015-07-29 5:38 ` Viresh Kumar
2015-07-29 5:32 ` [Update 2x][PATCH 7/7] cpufreq: Separate CPU device registration from CPU online Viresh Kumar
2015-07-29 14:02 ` Rafael J. Wysocki
2015-07-29 14:07 ` 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=3102455.P3lingtaHD@vostro.rjw.lan \
--to=rjw@rjwysocki.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome