From: Frans Pop <elendil@planet.nl>
To: Zhang Rui <rui.zhang@intel.com>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>,
"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 4/6,v2] thermal: add sanity check for the passive attribute
Date: Thu, 3 Sep 2009 16:33:38 +0200 [thread overview]
Message-ID: <200909031633.39415.elendil@planet.nl> (raw)
In-Reply-To: <1251958205.3483.290.camel@rzhang-dt>
On Thursday 03 September 2009, Zhang Rui wrote:
> > > > Would 1000 (1 °C) perhaps be more acceptable as a limit? I doubt
> > > > there are valid use-cases for below 0 temps :-)
> >
> > I'd prefer this option. Do you see any downside to this?
>
> I see many laptops with a passive trip point higher than 90C, so a
> passive trip point higher than 100C may be meaningful.
> I think we should use a higher value, say 2000?
I think you misunderstand. I want to return -EINVAL if state < 1000, which
means that they entered a value smaller than 1 degree C. This will prevent
users from entering for example "90" in the expectation that that sets the
trip point to 90 degrees C. See the new patch below.
When they see the error, it will be straightforward to discover that they
should enter 90000 instead, for example because temp is also in
millidegrees.
I don't think there is any reason to test for an upper limit.
Cheers,
FJP
From: Frans Pop <elendil@planet.nl>
Subject: thermal: add sanity check for the passive attribute
Values below 1000 milli-celsius don't make sense and can cause the
system to go into a thermal heart attack: the actual temperature
will always be lower and thus the system will be throttled down to
its lowest setting.
An additional problem is that values below 1000 will show as 0 in
/proc/acpi/thermal/TZx/trip_points:passive.
cat passive
0
echo -n 90 >passive
bash: echo: write error: Invalid argument
echo -n 90000 >passive
cat passive
90000
Signed-off-by: Frans Pop <elendil@planet.nl>
Cc: Matthew Garrett <mjg@redhat.com>
Cc: Zhang Rui <rui.zhang@intel.com>
diff --git a/Documentation/thermal/sysfs-api.txt b/Documentation/thermal/sysfs-api.txt
index a87dc27..cb3d15b 100644
--- a/Documentation/thermal/sysfs-api.txt
+++ b/Documentation/thermal/sysfs-api.txt
@@ -206,6 +206,7 @@ passive
passive trip point for the zone. Activation is done by polling with
an interval of 1 second.
Unit: millidegrees Celsius
+ Valid values: 0 (disabled) or greater than 1000
RW, Optional
*****************************
diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c
index 4e83c29..74d2eb5 100644
--- a/drivers/thermal/thermal_sys.c
+++ b/drivers/thermal/thermal_sys.c
@@ -225,6 +225,12 @@ passive_store(struct device *dev, struct device_attribute *attr,
if (!sscanf(buf, "%d\n", &state))
return -EINVAL;
+ /* sanity check: values below 1000 millicelcius don't make sense
+ * and can cause the system to go into a thermal heart attack
+ */
+ if (state && state < 1000)
+ return -EINVAL;
+
if (state && !tz->forced_passive) {
mutex_lock(&thermal_list_lock);
list_for_each_entry(cdev, &thermal_cdev_list, node) {
next prev parent reply other threads:[~2009-09-03 14:33 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-26 16:17 [PATCH 0/6] thermal: improvements re. forced passive cooling Frans Pop
2009-08-26 16:17 ` [PATCH 1/6] thermal: sysfs-api.txt - reformat for improved readability Frans Pop
2009-08-26 16:17 ` [PATCH 2/6] thermal: sysfs-api.txt - document passive attribute for thermal zones Frans Pop
2009-08-31 8:18 ` Zhang Rui
2009-08-31 11:19 ` Frans Pop
2009-09-01 0:44 ` Zhang Rui
2009-09-02 20:02 ` Pavel Machek
2009-09-03 14:34 ` Frans Pop
2009-08-26 16:17 ` [PATCH 3/6] acpi: thermal: display forced passive trip points in proc Frans Pop
2009-08-31 8:20 ` Zhang Rui
2009-08-26 16:17 ` [PATCH 4/6] thermal: add sanity check for the passive attribute Frans Pop
2009-08-26 16:23 ` Matthew Garrett
2009-08-26 16:48 ` Frans Pop
2009-08-31 8:33 ` Zhang Rui
2009-08-31 10:30 ` Frans Pop
2009-09-03 6:10 ` Zhang Rui
2009-09-03 14:33 ` Frans Pop [this message]
2009-08-26 16:17 ` [PATCH 5/6] thermal: Only set passive_delay for forced passive cooling Frans Pop
2009-08-26 16:25 ` Matthew Garrett
2009-09-10 16:07 ` Frans Pop
2009-09-10 16:15 ` Matthew Garrett
2009-08-26 16:17 ` [PATCH 6/6] thermal: disable polling if passive_delay and polling_delay are both unset Frans Pop
2009-08-26 16:25 ` 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=200909031633.39415.elendil@planet.nl \
--to=elendil@planet.nl \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mjg59@srcf.ucam.org \
--cc=rui.zhang@intel.com \
/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