* [PATCH 1/2] IPS driver: apply BIOS provided CPU limit if different from default
@ 2010-10-05 18:26 Jesse Barnes
2010-10-05 18:26 ` [PATCH 2/2] IPS driver: disable CPU turbo Jesse Barnes
0 siblings, 1 reply; 4+ messages in thread
From: Jesse Barnes @ 2010-10-05 18:26 UTC (permalink / raw)
To: platform-driver-x86; +Cc: mjg, Jesse Barnes
The BIOS may hand us a lower CPU power limit than the default for a
given SKU. We should use it in case the platform isn't designed to
dissapate the full TDP of a given part.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
drivers/platform/x86/intel_ips.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/platform/x86/intel_ips.c b/drivers/platform/x86/intel_ips.c
index c402cc4..f7924c5 100644
--- a/drivers/platform/x86/intel_ips.c
+++ b/drivers/platform/x86/intel_ips.c
@@ -1377,9 +1377,10 @@ static struct ips_mcp_limits *ips_detect_cpu(struct ips_driver *ips)
tdp = turbo_power & TURBO_TDP_MASK;
/* Sanity check TDP against CPU */
- if (limits->mcp_power_limit != (tdp / 8) * 1000) {
- dev_warn(&ips->dev->dev, "Warning: CPU TDP doesn't match expected value (found %d, expected %d)\n",
- tdp / 8, limits->mcp_power_limit / 1000);
+ if (limits->core_power_limit != (tdp / 8) * 1000) {
+ dev_info(&ips->dev->dev, "CPU TDP doesn't match expected value (found %d, expected %d)\n",
+ tdp / 8, limits->core_power_limit / 1000);
+ limits->core_power_limit = (tdp / 8) * 1000;
}
out:
--
1.7.2.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] IPS driver: disable CPU turbo
2010-10-05 18:26 [PATCH 1/2] IPS driver: apply BIOS provided CPU limit if different from default Jesse Barnes
@ 2010-10-05 18:26 ` Jesse Barnes
2011-02-28 19:01 ` Anssi Hannula
0 siblings, 1 reply; 4+ messages in thread
From: Jesse Barnes @ 2010-10-05 18:26 UTC (permalink / raw)
To: platform-driver-x86; +Cc: mjg, Jesse Barnes
The undocumented interface we're using for reading CPU power seems to be
overreporting power. Until we figure out how to correct it, disable CPU
turbo and power reporting to be safe. This will keep the CPU within default
limits and still allow us to increase GPU frequency as needed.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
drivers/platform/x86/intel_ips.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/platform/x86/intel_ips.c b/drivers/platform/x86/intel_ips.c
index f7924c5..af4d2c7 100644
--- a/drivers/platform/x86/intel_ips.c
+++ b/drivers/platform/x86/intel_ips.c
@@ -703,6 +703,7 @@ static void update_turbo_limits(struct ips_driver *ips)
u32 hts = thm_readl(THM_HTS);
ips->cpu_turbo_enabled = !(hts & HTS_PCTD_DIS);
+ ips->cpu_turbo_enabled = false;
ips->gpu_turbo_enabled = !(hts & HTS_GTD_DIS);
ips->core_power_limit = thm_readw(THM_MPCPC);
ips->mch_power_limit = thm_readw(THM_MMGPC);
@@ -882,7 +883,7 @@ static u32 get_cpu_power(struct ips_driver *ips, u32 *last, int period)
ret = (ret * 1000) / 65535;
*last = val;
- return ret;
+ return 0;
}
static const u16 temp_decay_factor = 2;
@@ -1173,6 +1174,7 @@ static irqreturn_t ips_irq_handler(int irq, void *arg)
STS_GPL_SHIFT;
/* ignore EC CPU vs GPU pref */
ips->cpu_turbo_enabled = !(sts & STS_PCTD_DIS);
+ ips->cpu_turbo_enabled = false;
ips->gpu_turbo_enabled = !(sts & STS_GTD_DIS);
ips->mcp_temp_limit = (sts & STS_PTL_MASK) >>
STS_PTL_SHIFT;
@@ -1559,8 +1561,8 @@ static int ips_probe(struct pci_dev *dev, const struct pci_device_id *id)
/* Save turbo limits & ratios */
rdmsrl(TURBO_POWER_CURRENT_LIMIT, ips->orig_turbo_limit);
- ips_enable_cpu_turbo(ips);
- ips->cpu_turbo_enabled = true;
+ ips_disable_cpu_turbo(ips);
+ ips->cpu_turbo_enabled = false;
/* Create thermal adjust thread */
ips->adjust = kthread_create(ips_adjust, ips, "ips-adjust");
--
1.7.2.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] IPS driver: disable CPU turbo
2010-10-05 18:26 ` [PATCH 2/2] IPS driver: disable CPU turbo Jesse Barnes
@ 2011-02-28 19:01 ` Anssi Hannula
2011-02-28 19:06 ` Jesse Barnes
0 siblings, 1 reply; 4+ messages in thread
From: Anssi Hannula @ 2011-02-28 19:01 UTC (permalink / raw)
To: Jesse Barnes; +Cc: platform-driver-x86, mjg
On 05.10.2010 21:26, Jesse Barnes wrote:
> The undocumented interface we're using for reading CPU power seems to be
> overreporting power. Until we figure out how to correct it, disable CPU
> turbo and power reporting to be safe. This will keep the CPU within default
> limits and still allow us to increase GPU frequency as needed.
Any news on this one, or is it expected to be disabled indefinitely?
--
Anssi Hannula
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] IPS driver: disable CPU turbo
2011-02-28 19:01 ` Anssi Hannula
@ 2011-02-28 19:06 ` Jesse Barnes
0 siblings, 0 replies; 4+ messages in thread
From: Jesse Barnes @ 2011-02-28 19:06 UTC (permalink / raw)
To: Anssi Hannula; +Cc: platform-driver-x86, mjg
On Mon, 28 Feb 2011 21:01:44 +0200
Anssi Hannula <anssi.hannula@iki.fi> wrote:
> On 05.10.2010 21:26, Jesse Barnes wrote:
> > The undocumented interface we're using for reading CPU power seems to be
> > overreporting power. Until we figure out how to correct it, disable CPU
> > turbo and power reporting to be safe. This will keep the CPU within default
> > limits and still allow us to increase GPU frequency as needed.
>
> Any news on this one, or is it expected to be disabled indefinitely?
No news, you could add a module param to force it on or revert this
patch, then run some comparisons and see what kind of perf difference
you see between enabled/disabled.
--
Jesse Barnes, Intel Open Source Technology Center
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-02-28 19:06 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-05 18:26 [PATCH 1/2] IPS driver: apply BIOS provided CPU limit if different from default Jesse Barnes
2010-10-05 18:26 ` [PATCH 2/2] IPS driver: disable CPU turbo Jesse Barnes
2011-02-28 19:01 ` Anssi Hannula
2011-02-28 19:06 ` Jesse Barnes
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).