From: Jean Delvare <jdelvare@suse.de>
To: linux-pm@vger.kernel.org
Cc: Guenter Roeck <linux@roeck-us.net>,
Len Brown <len.brown@intel.com>,
Josh Triplett <josh@joshtriplett.org>
Subject: [PATCH] tools/power turbostat: Drop temperature checks
Date: Thu, 1 May 2014 11:40:19 +0200 [thread overview]
Message-ID: <20140501114019.1a63728e@endymion.delvare> (raw)
The Intel 64 and IA-32 Architectures Software Developer's Manual says
that TjMax is stored in bits 23:16 of MSR_TEMPERATURE TARGET (0x1a2).
That's 8 bits, not 7, so it must be masked with 0xFF rather than 0x7F.
The manual has no mention of which values should be considered valid,
which kind of implies that they all are. Arbitrarily discarding values
outside a specific range is wrong. The upper range check had to be
fixed recently (commit 144b44b1) and the lower range check is just as
wrong. See bug #75071:
https://bugzilla.kernel.org/show_bug.cgi?id=75071
There are many Xeon processor series with TjMax of 70, 71 or 80
degrees Celsius, way below the arbitrary 85 degrees Celsius limit.
There may be other (past or future) models with even lower limits.
So drop this arbitrary check. The only value that would be clearly
invalid is 0. Everything else should be accepted.
After these changes, turbostat is aligned with what the coretemp
driver does.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Len Brown <len.brown@intel.com>
Cc: Josh Triplett <josh@joshtriplett.org>
---
tools/power/x86/turbostat/turbostat.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- linux-3.15-rc3.orig/tools/power/x86/turbostat/turbostat.c 2014-04-14 09:42:33.140152144 +0200
+++ linux-3.15-rc3/tools/power/x86/turbostat/turbostat.c 2014-05-01 11:22:54.635123682 +0200
@@ -1971,13 +1971,13 @@ int set_temperature_target(struct thread
if (get_msr(0, MSR_IA32_TEMPERATURE_TARGET, &msr))
goto guess;
- target_c_local = (msr >> 16) & 0x7F;
+ target_c_local = (msr >> 16) & 0xFF;
if (verbose)
fprintf(stderr, "cpu%d: MSR_IA32_TEMPERATURE_TARGET: 0x%08llx (%d C)\n",
cpu, msr, target_c_local);
- if (target_c_local < 85 || target_c_local > 127)
+ if (!target_c_local)
goto guess;
tcc_activation_temp = target_c_local;
--
Jean Delvare
SUSE L3 Support
next reply other threads:[~2014-05-01 9:40 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-01 9:40 Jean Delvare [this message]
2014-05-01 11:12 ` [PATCH] tools/power turbostat: Drop temperature checks Guenter Roeck
2014-05-01 16:27 ` josh
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=20140501114019.1a63728e@endymion.delvare \
--to=jdelvare@suse.de \
--cc=josh@joshtriplett.org \
--cc=len.brown@intel.com \
--cc=linux-pm@vger.kernel.org \
--cc=linux@roeck-us.net \
/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