Bug 83921

Summary: ACPI: Thermal Zone [TZ01] (-266 C) and other issues
Product: ACPI Reporter: Arkadiusz Miskiewicz (arekm)
Component: Power-ThermalAssignee: Zhang Rui (rui.zhang)
Status: CLOSED DOCUMENTED    
Severity: normal CC: rui.zhang
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.17.0-rc3-00002-g7505cea Subsystem:
Regression: No Bisected commit-id:
Attachments: Dell XPS 15 (late 2013 model) acpidump
customized _TMP method

Description Arkadiusz Miskiewicz 2014-09-05 06:23:02 UTC
Created attachment 149281 [details]
Dell XPS 15 (late 2013 model) acpidump

After loading thermal acpi driver I get:

[54136.633643] ACPI: Invalid active2 threshold
[54136.633761] thermal LNXTHERM:00: registered as thermal_zone6
[54136.633763] ACPI: Thermal Zone [TZ00] (28 C)
[54136.634009] thermal LNXTHERM:01: registered as thermal_zone7
[54136.634011] ACPI: Thermal Zone [TZ01] (-266 C)

From thread started on linux-acpi@
http://marc.info/?l=linux-acpi&m=140989696029587&w=2

> > > > After loading thermal acpi driver I get:
> > > > 
> > > > [54136.633643] ACPI: Invalid active2 threshold
> > > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
this is a BIOS bug. _AC2 is defined while _AL2 is not, thus this is an
invalid active trip point.
But it won't hurt IMO, because there are two ACPI Fan devices, and they
are both used (for active trip point 0 and 1) in the ACPI thermal
management in your laptop.

> > > > [54136.633761] thermal LNXTHERM:00: registered as thermal_zone6
> > > > [54136.633763] ACPI: Thermal Zone [TZ00] (28 C)
> > > > [54136.634009] thermal LNXTHERM:01: registered as thermal_zone7
> > > > [54136.634011] ACPI: Thermal Zone [TZ01] (-266 C)
> > > > 
This is more serious to me.
Comment 1 Zhang Rui 2014-09-09 08:16:21 UTC
Created attachment 149601 [details]
customized _TMP method

Please
1. download the tmp.aml attached
2. run "echo 1 > /sys/module/acpi/parameters/aml_debug_output"
3. mount debugfs by "mount -t debugfs none /sys/kernel/debug"
4. override the old _TMP method via the debugfs by running
      "cat tmp.aml > /sys/kernel/debug/acpi/custom_method"
5. run "grep . /sys/class/thermal/thermal*/*"
6. attach the dmesg output.
Comment 2 Arkadiusz Miskiewicz 2014-09-09 08:30:34 UTC
[ 2496.018792] ACPI: Invalid active2 threshold
[ 2496.019140] thermal LNXTHERM:00: registered as thermal_zone6
[ 2496.019148] ACPI: Thermal Zone [TZ00] (28 C)
[ 2496.020167] thermal LNXTHERM:01: registered as thermal_zone7
[ 2496.020178] ACPI: Thermal Zone [TZ01] (-268 C)

after above commands:

[ 6127.892931] Disabling lock debugging due to kernel taint
[ 6142.825929] [ACPI Debug]  String [0x11] "In _TZ_.TZ01._TMP"
[ 6142.825935] [ACPI Debug]  Integer 0x0000000000000001
[ 6142.825941] [ACPI Debug]  Integer 0x0000000000000000
[ 6142.825948] [ACPI Debug]  String [0x08] "Return 4"
[ 6142.825961] [ACPI Debug]  Integer 0x000000000000003F

second grep run

[ 6203.595725] [ACPI Debug]  String [0x11] "In _TZ_.TZ01._TMP"
[ 6203.595747] [ACPI Debug]  Integer 0x0000000000000001
[ 6203.595770] [ACPI Debug]  Integer 0x0000000000000000
[ 6203.595796] [ACPI Debug]  String [0x08] "Return 4"
[ 6203.595822] [ACPI Debug]  Integer 0x0000000000000036
Comment 3 Zhang Rui 2014-09-09 08:46:10 UTC
This was really a quick response. :p

(In reply to Arkadiusz Miskiewicz from comment #2)
> [ 2496.018792] ACPI: Invalid active2 threshold
> [ 2496.019140] thermal LNXTHERM:00: registered as thermal_zone6
> [ 2496.019148] ACPI: Thermal Zone [TZ00] (28 C)
> [ 2496.020167] thermal LNXTHERM:01: registered as thermal_zone7
> [ 2496.020178] ACPI: Thermal Zone [TZ01] (-268 C)
> 
> after above commands:
> 
> [ 6127.892931] Disabling lock debugging due to kernel taint
> [ 6142.825929] [ACPI Debug]  String [0x11] "In _TZ_.TZ01._TMP"
> [ 6142.825935] [ACPI Debug]  Integer 0x0000000000000001
> [ 6142.825941] [ACPI Debug]  Integer 0x0000000000000000
> [ 6142.825948] [ACPI Debug]  String [0x08] "Return 4"
> [ 6142.825961] [ACPI Debug]  Integer 0x000000000000003F
> 
> second grep run
> 
> [ 6203.595725] [ACPI Debug]  String [0x11] "In _TZ_.TZ01._TMP"
> [ 6203.595747] [ACPI Debug]  Integer 0x0000000000000001
> [ 6203.595770] [ACPI Debug]  Integer 0x0000000000000000
> [ 6203.595796] [ACPI Debug]  String [0x08] "Return 4"
> [ 6203.595822] [ACPI Debug]  Integer 0x0000000000000036

Okay, I see, then the ACPI thermal control is do buggy now, not only for thermal zone TZ01, but also for thermal zone TZ00.
TZ00 always reports a static value, i.e. 28C, no matter how hot your system is. And TZ01 always reports some insane values, which is also meaningless for thermal control.

IMO, this is apparently a BIOS bug to me, which makes _TMP returns bogus values.

Thus I will close this bug report as OS can do nothing for it.

At the same time, you can check if you're lucky by
1. checking and changing the thermal related options in your BIOS setup menu.
2. upgrading your BIOS.

Good luck. :)
Comment 4 Arkadiusz Miskiewicz 2014-09-09 08:57:25 UTC
Thanks. Unfortunately there are no thermal options in BIOS and no newer version (using BIOS|Release date 7/30/2014|Last Updated 7/30/2014|Version A06).

I'll try to bugreport this to dell but know no BIOS engineers there. Linkedin to help...

ps. for documentation purposes - this was XPS 15 (9530, Late 2013) system
Comment 5 Zhang Rui 2014-09-09 09:07:39 UTC
btw: is any any BIOS related to "DPTF" or "Dynamic platform and thermal management framework"? If yes, can you please disable it and check if the problem still exists?
Comment 6 Arkadiusz Miskiewicz 2014-09-09 09:30:03 UTC
Unfortunately no. This bios has very limited set of options - http://i60.tinypic.com/23vav84.jpg (misc devices menu is about usb ports)

But found two dell bios engineers on twitter. There is small/tiny chance that they can help. Will see :)