From: Thomas Renninger <trenn@suse.de>
To: Zhang Rui <rui.zhang@intel.com>
Cc: ak@linux.intel.com, lenb@kernel.org, linux-acpi@vger.kernel.org,
ibm-acpi-devel@lists.sourceforge.net
Subject: Re: Avoid critical temp shutdowns on specific ThinkPad T4x(p) and R50p
Date: Fri, 1 Aug 2008 13:18:01 +0200 [thread overview]
Message-ID: <200808011318.02875.trenn@suse.de> (raw)
In-Reply-To: <1217466121.2969.49.camel@rzhang-dt>
On Thursday 31 July 2008 03:02:01 Zhang Rui wrote:
> On Wed, 2008-07-30 at 15:56 +0200, Thomas Renninger wrote:
> > This came in in OpenSUSE 10.3. When we still had overriden thermal
> > polling frequency (what we probably will do again soon). It has been
> > tested that specific ThinkPads do not throw a thermal event when
> > exceeding the passive trip point. Even thermal polling was not enough...
> > As no other solution has been found meanwhile and it seems Windows is
> > also using a virtual passive trip point:
> > [Bug 10658] thermal shutdown - Dell Precision M20, Latitude D610
> > http://bugzilla.kernel.org/show_bug.cgi?id=10658
> > it would be great to get this integrated into the mainline kernel.
> >
> > BTW, the patch from Matthew in above bug, will this in some way be
> > integerated mainline? Otherwise we'll have to maintain this one ourself.
>
> Matthew has a new patch series which implement this in the generic
> thermal sysfs driver, which looks good IMO.
> http://marc.info/?l=linux-acpi&m=121320356423139&w=2
No Matthew's patch won't work here because the ThinkPads define a passive
trip point.
The reason it does not work is because:
- temperature can rise very fast on some models (especially since some
several years old "avoid fan noise" EC firmware update)
- passive and critical trip points exported by BIOS are about 91 and 93
(I do not remember the exact values, but they are close together).
- Some models do not throw a thermal event
The patch could work if it gets extended to override the passive trip point
exported by the BIOS if the one from BIOS is higher and polling gets
activated then. E.g.:
critical: 93
passive: 91
forced_passive: 88 (not sure whether -5 is enough, but IMO it's very much
worth a try to get this generic)
-> override passive tp and enable polling
>
> will you review them?
I had a short look, but I do not know thermal_sys well yet. I try to find some
more time later or next week.
In which status is that patch, should this go into linux-next and mainline in
2.6.28?
I can offer to go through it at later time and also add it to our factory tree
so that it gets more testing.
> thanks,
Thank you,
Thomas
> rui
>
> > From: Thomas Renninger <trenn@suse.de>
> > Subject: Avoid critical temp shutdowns on specific ThinkPad T4x(p) and
> > R50p References: https://bugzilla.novell.com/show_bug.cgi?id=333043
> >
> > ---
> > drivers/acpi/thermal.c | 73
> > +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73
> > insertions(+)
> >
> > Index: linux-2.6.25-SL110_BRANCH/drivers/acpi/thermal.c
> > ===================================================================
> > --- linux-2.6.25-SL110_BRANCH.orig/drivers/acpi/thermal.c
> > +++ linux-2.6.25-SL110_BRANCH/drivers/acpi/thermal.c
> > @@ -42,6 +42,7 @@
> > #include <linux/kmod.h>
> > #include <linux/seq_file.h>
> > #include <linux/reboot.h>
> > +#include <linux/dmi.h>
> > #include <asm/uaccess.h>
> > #include <linux/thermal.h>
> > #include <acpi/acpi_bus.h>
> > @@ -1576,6 +1577,66 @@ static int acpi_thermal_get_info(struct
> > return 0;
> > }
> >
> > +static struct dmi_system_id thermal_psv_dmi_table[] = {
> > + {
> > + .ident = "IBM ThinkPad T41",
> > + .matches = {
> > + DMI_MATCH(DMI_BIOS_VENDOR,"IBM"),
> > + DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T41"),
> > + },
> > + },
> > + {
> > + .ident = "IBM ThinkPad T42",
> > + .matches = {
> > + DMI_MATCH(DMI_BIOS_VENDOR,"IBM"),
> > + DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T42"),
> > + },
> > + },
> > + {
> > + .ident = "IBM ThinkPad T43",
> > + .matches = {
> > + DMI_MATCH(DMI_BIOS_VENDOR,"IBM"),
> > + DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T43"),
> > + },
> > + },
> > + {
> > + .ident = "IBM ThinkPad T41p",
> > + .matches = {
> > + DMI_MATCH(DMI_BIOS_VENDOR,"IBM"),
> > + DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T41p"),
> > + },
> > + },
> > + {
> > + .ident = "IBM ThinkPad T42p",
> > + .matches = {
> > + DMI_MATCH(DMI_BIOS_VENDOR,"IBM"),
> > + DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T42p"),
> > + },
> > + },
> > + {
> > + .ident = "IBM ThinkPad T43p",
> > + .matches = {
> > + DMI_MATCH(DMI_BIOS_VENDOR,"IBM"),
> > + DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad T43p"),
> > + },
> > + },
> > + {
> > + .ident = "IBM ThinkPad R40",
> > + .matches = {
> > + DMI_MATCH(DMI_BIOS_VENDOR,"IBM"),
> > + DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad R40"),
> > + },
> > + },
> > + {
> > + .ident = "IBM ThinkPad R50p",
> > + .matches = {
> > + DMI_MATCH(DMI_BIOS_VENDOR,"IBM"),
> > + DMI_MATCH(DMI_PRODUCT_VERSION,"ThinkPad R50p"),
> > + },
> > + },
> > + {},
> > +};
> > +
> > static int acpi_thermal_add(struct acpi_device *device)
> > {
> > int result = 0;
> > @@ -1606,6 +1667,18 @@ static int acpi_thermal_add(struct acpi_
> > if (result)
> > goto free_memory;
> >
> > + if (dmi_check_system(thermal_psv_dmi_table)) {
> > + if (tz->trips.passive.flags.valid &&
> > + tz->trips.passive.temperature > CELSIUS_TO_KELVIN(85)) {
> > + printk (KERN_INFO "Adjust passive trip point from %lu"
> > + " to %lu\n",
> > + KELVIN_TO_CELSIUS(tz->trips.passive.temperature),
> > + KELVIN_TO_CELSIUS(tz->trips.passive.temperature - 150));
> > + tz->trips.passive.temperature -= 150;
> > + acpi_thermal_set_polling(tz, 5);
> > + }
> > + }
> > +
> > result = acpi_thermal_add_fs(device);
> > if (result)
> > goto unregister_thermal_zone;
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2008-08-01 11:18 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-30 13:56 Avoid critical temp shutdowns on specific ThinkPad T4x(p) and R50p Thomas Renninger
2008-07-30 16:17 ` Andi Kleen
[not found] ` <4890942C.3080007-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2008-07-30 16:46 ` Thomas Renninger
[not found] ` <200807301556.01815.trenn-l3A5Bk7waGM@public.gmane.org>
2008-07-30 17:52 ` Henrique de Moraes Holschuh
[not found] ` <20080730175227.GA13850-ZGHd14iZgfaRjzvQDGKj+xxZW9W5cXbT@public.gmane.org>
2008-07-30 19:03 ` Thomas Renninger
2008-07-30 20:39 ` [ibm-acpi-devel] " Chris Hanson
[not found] ` <f62196f50807301339r10bbb17do4bb2345b688011a3-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-07-31 13:19 ` Henrique de Moraes Holschuh
2008-07-31 9:44 ` Critical temp shutdowns on ThinkPad X60 1706-GMG (was Re: [ibm-acpi-devel] Avoid critical temp shutdowns on specific ThinkPad T4x(p) and R50p) Luca Capello
[not found] ` <87zlnyv14h.fsf_-_-vpnYUZh4Q8kL5bzFcGmneg@public.gmane.org>
2008-07-31 12:39 ` Critical temp shutdowns on ThinkPad X60 1706-GMG (was " Thomas Renninger
2008-07-31 13:04 ` Critical temp shutdowns on ThinkPad X60 1706-GMG Luca Capello
2008-07-31 13:15 ` Theodore Tso
[not found] ` <20080731131512.GI5347-3s7WtUTddSA@public.gmane.org>
2008-07-31 13:21 ` Henrique de Moraes Holschuh
2008-07-31 13:28 ` Luca Capello
2008-07-31 14:06 ` Theodore Tso
[not found] ` <20080731140602.GB11632-3s7WtUTddSA@public.gmane.org>
2008-07-31 14:15 ` Henrique de Moraes Holschuh
2008-07-31 1:02 ` Avoid critical temp shutdowns on specific ThinkPad T4x(p) and R50p Zhang Rui
2008-08-01 11:18 ` Thomas Renninger [this message]
2008-08-11 11:30 ` Andi Kleen
[not found] ` <48A022BD.2040908-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2008-08-11 12:33 ` Thomas Renninger
[not found] ` <200808111433.25275.trenn-l3A5Bk7waGM@public.gmane.org>
2008-08-11 12:55 ` Matthew Garrett
[not found] ` <20080811125519.GA26308-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>
2008-08-11 14:14 ` Thomas Renninger
2008-08-11 14:15 ` Matthew Garrett
2008-08-12 8:00 ` Andi Kleen
2008-08-12 8:02 ` Matthew Garrett
2008-08-12 8:20 ` Zhang Rui
2008-08-12 9:32 ` Andi Kleen
2008-08-12 1:27 ` Zhang Rui
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=200808011318.02875.trenn@suse.de \
--to=trenn@suse.de \
--cc=ak@linux.intel.com \
--cc=ibm-acpi-devel@lists.sourceforge.net \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.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