All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Perches <joe@perches.com>
To: Cesar Eduardo Barros <cesarb@cesarb.net>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>,
	Matthew Garrett <mjg@redhat.com>,
	platform-driver-x86@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] intel_ips: quieten "power or thermal limit exceeded" messages
Date: Thu, 26 Aug 2010 17:41:00 -0700	[thread overview]
Message-ID: <1282869660.1836.5.camel@Joe-Laptop> (raw)
In-Reply-To: <4C770299.6000708@cesarb.net>

On Thu, 2010-08-26 at 21:11 -0300, Cesar Eduardo Barros wrote:
> Em 26-08-2010 20:33, Joe Perches escreveu:
> > On Thu, 26 Aug 2010, Cesar Eduardo Barros wrote:
> >> On my Dell Inspiron N4010, one of these messages is printed every five
> >> seconds. Change both to dev_dbg to quieten them even more.
> > I think you should instead fix your hardware or maybe change
> > your thermal throttling settings.

I was probably a bit hasty in writing that.

> Is there a way to know if all this is just an oddness of this model, or 
> if there is something which is not working quite right?
> 
> (All the output above is from 2.6.35.3; I am not running 2.3.36-rc2+ 
> right now because it hangs on resume, and I have not yet had the time to 
> look at it.)

Perhaps you might try this patch and get a bit more information.

It seems a sensible patch and perhaps should be applied anyway.

Signed-off-by: Joe Perches <joe@perches.com>
---
 drivers/platform/x86/intel_ips.c |   58 +++++++++++++++++++++++++++++--------
 1 files changed, 45 insertions(+), 13 deletions(-)

diff --git a/drivers/platform/x86/intel_ips.c b/drivers/platform/x86/intel_ips.c
index 9024480..73f9ad1 100644
--- a/drivers/platform/x86/intel_ips.c
+++ b/drivers/platform/x86/intel_ips.c
@@ -598,17 +598,36 @@ static bool mcp_exceeded(struct ips_driver *ips)
 {
 	unsigned long flags;
 	bool ret = false;
+	u16 mcp_avg_temp;
+	u16 mcp_temp_limit;
+	u16 mcp_power_limit;
+	u32 cpu_avg_power;
+	u32 mch_avg_power;
 
 	spin_lock_irqsave(&ips->turbo_status_lock, flags);
-	if (ips->mcp_avg_temp > (ips->mcp_temp_limit * 100))
-		ret = true;
-	if (ips->cpu_avg_power + ips->mch_avg_power > ips->mcp_power_limit)
-		ret = true;
+
+	mcp_avg_temp = ips->mcp_avg_temp;
+	mcp_temp_limit = ips->mcp_temp_limit;
+	mcp_power_limit = ips->mcp_power_limit;
+	cpu_avg_power = ips->cpu_avg_power;
+	mch_avg_power = ips->mch_avg_power;
+
 	spin_unlock_irqrestore(&ips->turbo_status_lock, flags);
 
-	if (ret)
+	if ((cpu_avg_power + mch_avg_power) > mcp_power_limit) {
 		dev_info(&ips->dev->dev,
-			 "MCP power or thermal limit exceeded\n");
+			 "MCP power limit %d exceeded: %d\n",
+			 mcp_power_limit,
+			 cpu_avg_power + mch_avg_power);
+		ret = true;
+	}
+	if (mcp_avg_temp > (mcp_temp_limit * 100)) {
+		dev_info(&ips->dev->dev,
+			 "MCP thermal limit %d exceeded: %d\n",
+			 mcp_temp_limit * 100,
+			 mcp_avg_temp);
+		ret = true;
+	}
 
 	return ret;
 }
@@ -623,20 +642,33 @@ static bool mcp_exceeded(struct ips_driver *ips)
 static bool cpu_exceeded(struct ips_driver *ips, int cpu)
 {
 	unsigned long flags;
-	int avg;
 	bool ret = false;
+	int avg;
+	int core_temp_limit;
+	u16 core_power_limit;
+	u32 cpu_avg_power;
 
 	spin_lock_irqsave(&ips->turbo_status_lock, flags);
+
 	avg = cpu ? ips->ctv2_avg_temp : ips->ctv1_avg_temp;
-	if (avg > (ips->limits->core_temp_limit * 100))
-		ret = true;
-	if (ips->cpu_avg_power > ips->core_power_limit * 100)
-		ret = true;
+	core_temp_limit = ips->limits->core_temp_limit;
+	core_power_limit = ips->core_power_limit;
+	cpu_avg_power = ips->cpu_avg_power;
+
 	spin_unlock_irqrestore(&ips->turbo_status_lock, flags);
 
-	if (ret)
+	if (cpu_avg_power > (core_power_limit * 100)) {
+		dev_info(&ips->dev->dev,
+			 "CPU power limit %d exceeded: %d\n",
+			 cpu_avg_power, core_power_limit * 100);
+		ret = true;
+	}
+	if (avg > (core_temp_limit * 100)) {
 		dev_info(&ips->dev->dev,
-			 "CPU power or thermal limit exceeded\n");
+			 "CPU thermal limit %d exceeded: %d\n",
+			 core_temp_limit * 100, avg);
+		ret = true;
+	}
 
 	return ret;
 }

  reply	other threads:[~2010-08-27  0:41 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-25  0:48 intel ips: CPU TDP doesn't match expected value Cesar Eduardo Barros
2010-08-25  1:37 ` Jesse Barnes
2010-08-26 23:29 ` [PATCH] intel_ips: quieten "power or thermal limit exceeded" messages Cesar Eduardo Barros
2010-08-26 23:33   ` Joe Perches
2010-08-26 23:33     ` Joe Perches
2010-08-27  0:11     ` Cesar Eduardo Barros
2010-08-27  0:41       ` Joe Perches [this message]
2010-08-27  1:38         ` Cesar Eduardo Barros
2010-08-27  7:39           ` Joe Perches
2010-08-27 23:12             ` Cesar Eduardo Barros
2010-08-28  2:21               ` Joe Perches
2010-08-28 10:46                 ` Cesar Eduardo Barros
     [not found]                   ` <1282994116.1946.226.camel@Joe-Laptop>
2010-08-28 12:52                     ` Cesar Eduardo Barros
2010-08-28 12:52                       ` Cesar Eduardo Barros
2010-08-28 13:01                       ` Cesar Eduardo Barros
2010-08-28 13:29                       ` Joe Perches
2010-08-28 14:18                         ` Cesar Eduardo Barros
2010-08-28 15:23                           ` Henrique de Moraes Holschuh
2010-08-28 19:07                             ` Cesar Eduardo Barros
2010-08-30 16:29                               ` Jesse Barnes
2010-08-30 21:42                                 ` Cesar Eduardo Barros
2010-09-23 20:31                 ` Jesse Barnes
2010-09-23 20:47                   ` Joe Perches
2010-09-23 20:50                     ` Jesse Barnes
2010-08-27  0:18   ` Alan Cox
2010-08-27  0:22     ` Cesar Eduardo Barros
2010-08-27  1:42   ` Matthew Garrett

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=1282869660.1836.5.camel@Joe-Laptop \
    --to=joe@perches.com \
    --cc=cesarb@cesarb.net \
    --cc=jbarnes@virtuousgeek.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mjg@redhat.com \
    --cc=platform-driver-x86@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 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.