From: dirk.brandewie@gmail.com
To: linux-kernel@vger.kernel.org, cpufreq@vger.kernel.org
Cc: Dirk Brandewie <dirk.j.brandewie@intel.com>
Subject: [PATCH 3/6] cpufreq: Do not track governor name for scaling drivers with internal governors.
Date: Fri, 1 Feb 2013 10:45:39 -0800 [thread overview]
Message-ID: <1359744343-18690-6-git-send-email-dirk.brandewie@gmail.com> (raw)
In-Reply-To: <1359744343-18690-1-git-send-email-dirk.brandewie@gmail.com>
From: Dirk Brandewie <dirk.j.brandewie@intel.com>
Scaling drivers that implement internal governors do not have governor
structures assocaited with them. Only track the name of the governor
associated with the CPU if the driver does not implement
cpufreq_driver.setpolicy()
Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com>
---
drivers/cpufreq/cpufreq.c | 35 +++++++++++++++++++++--------------
1 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 493cd50..a4fd51e 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -717,11 +717,13 @@ static int cpufreq_add_dev_policy(unsigned int cpu,
#ifdef CONFIG_HOTPLUG_CPU
struct cpufreq_governor *gov;
- gov = __find_governor(per_cpu(cpufreq_cpu_governor, cpu));
- if (gov) {
- policy->governor = gov;
- pr_debug("Restoring governor %s for cpu %d\n",
- policy->governor->name, cpu);
+ if (!cpufreq_driver->setpolicy) {
+ gov = __find_governor(per_cpu(cpufreq_cpu_governor, cpu));
+ if (gov) {
+ policy->governor = gov;
+ pr_debug("Restoring governor %s for cpu %d\n",
+ policy->governor->name, cpu);
+ }
}
#endif
@@ -1072,8 +1074,9 @@ static int __cpufreq_remove_dev(struct device *dev, struct subsys_interface *sif
#ifdef CONFIG_SMP
#ifdef CONFIG_HOTPLUG_CPU
- strncpy(per_cpu(cpufreq_cpu_governor, cpu), data->governor->name,
- CPUFREQ_NAME_LEN);
+ if (!cpufreq_driver->setpolicy)
+ strncpy(per_cpu(cpufreq_cpu_governor, cpu),
+ data->governor->name, CPUFREQ_NAME_LEN);
#endif
/* if we have other CPUs still registered, we need to unlink them,
@@ -1097,8 +1100,9 @@ static int __cpufreq_remove_dev(struct device *dev, struct subsys_interface *sif
continue;
pr_debug("removing link for cpu %u\n", j);
#ifdef CONFIG_HOTPLUG_CPU
- strncpy(per_cpu(cpufreq_cpu_governor, j),
- data->governor->name, CPUFREQ_NAME_LEN);
+ if (!cpufreq_driver->setpolicy)
+ strncpy(per_cpu(cpufreq_cpu_governor, j),
+ data->governor->name, CPUFREQ_NAME_LEN);
#endif
cpu_dev = get_cpu_device(j);
kobj = &cpu_dev->kobj;
@@ -1628,11 +1632,14 @@ void cpufreq_unregister_governor(struct cpufreq_governor *governor)
return;
#ifdef CONFIG_HOTPLUG_CPU
- for_each_present_cpu(cpu) {
- if (cpu_online(cpu))
- continue;
- if (!strcmp(per_cpu(cpufreq_cpu_governor, cpu), governor->name))
- strcpy(per_cpu(cpufreq_cpu_governor, cpu), "\0");
+ if (!cpufreq_driver->setpolicy)
+ for_each_present_cpu(cpu) {
+ if (cpu_online(cpu))
+ continue;
+ if (!strcmp(per_cpu(cpufreq_cpu_governor, cpu),
+ governor->name))
+ strcpy(per_cpu(cpufreq_cpu_governor, cpu),
+ "\0");
}
#endif
--
1.7.7.6
next prev parent reply other threads:[~2013-02-01 18:45 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-01 18:45 [PATCH 0/6] Add P state driver for Intel Core Processors dirk.brandewie
2013-02-01 18:45 ` [PATCH 1/6] cpufreq: Retrieve current frequency from scaling drivers with internal governors dirk.brandewie
2013-02-01 18:45 ` [PATCH 2/6] cpufreq: Only query drivers that implement cpufreq_driver.target() dirk.brandewie
2013-02-02 3:22 ` Viresh Kumar
2013-02-01 18:45 ` dirk.brandewie
2013-02-01 18:45 ` [PATCH 3/6] cpufreq: Do not track governor name for scaling drivers with internal governors dirk.brandewie
2013-02-02 3:25 ` Viresh Kumar
[not found] ` <CANOOhLSSXPuLG5X=TCfThjwcR3GuR=Z-O5qmY4StJZzg+Er5tA@mail.gmail.com>
2013-02-02 5:54 ` Viresh Kumar
2013-02-01 18:45 ` dirk.brandewie [this message]
2013-02-01 18:45 ` [PATCH 4/6] cpufreq_stats: Do not track policies without associated governors dirk.brandewie
2013-02-02 5:38 ` Viresh Kumar
2013-02-01 18:45 ` dirk.brandewie
2013-02-01 18:45 ` [PATCH 5/6] cpufreq: balance out cpufreq_cpu_{get,put} for scaling drivers using setpolicy dirk.brandewie
2013-02-02 5:41 ` Viresh Kumar
2013-02-04 18:25 ` Dirk Brandewie
2013-02-05 7:03 ` Viresh Kumar
2013-02-01 18:45 ` [PATCH 6/6] cpufreq/x86: Add P-state driver for sandy bridge dirk.brandewie
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=1359744343-18690-6-git-send-email-dirk.brandewie@gmail.com \
--to=dirk.brandewie@gmail.com \
--cc=cpufreq@vger.kernel.org \
--cc=dirk.j.brandewie@intel.com \
--cc=linux-kernel@vger.kernel.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