acpi_tz0: _CRT value is absurd, ignored (256.0C) (was pr kern/105537)

Ian Smith smithi at nimnet.asn.au
Thu Mar 26 22:44:26 PDT 2009


On Thu, 26 Mar 2009, Chris Whitehouse wrote:
 > Alexandre "Sunny" Kovalenko wrote:
 > > To be fair, if all you want is to override _CRT, you should be able to
 > > put something to the tune of
 > > 
 > > hw.acpi.thermal.user_override=1
 > > hw.acpi.thermal.tz0._CRT=90C
 > > 
 > > in your /etc/sysctl.conf and not deal with the ASL at all.
 > 
 > I tried this and it sets hw.acpi.thermal.tz0._CRT correctly until
 > hw.acpi.thermal.tz0.active and hw.acpi.thermal.tz0.temperature change values
 > at which point hw.acpi.thermal.tz0._CRT reverts to -1.
 > 
 > At idle having set hw.acpi.thermal.tz0._CRT to 90C with sysctl:
 > 
 > chrisw at muji% sysctl hw.acpi.thermal.tz0
 > hw.acpi.thermal.tz0.temperature: 55.0C
 > hw.acpi.thermal.tz0.active: 3
 > hw.acpi.thermal.tz0.passive_cooling: 0
 > hw.acpi.thermal.tz0.thermal_flags: 0
 > hw.acpi.thermal.tz0._PSV: -1
 > hw.acpi.thermal.tz0._HOT: -1
 > hw.acpi.thermal.tz0._CRT: 90.0C
 > hw.acpi.thermal.tz0._ACx: 80.0C 70.0C 60.0C 45.0C -1 -1 -1 -1 -1 -1
 > hw.acpi.thermal.tz0._TC1: -1
 > hw.acpi.thermal.tz0._TC2: -1
 > hw.acpi.thermal.tz0._TSP: -1

Just towards figuring out what this zone might represent .. perhaps it's 
a case temperature sensor, seemingly controlling a fan?  No passive 
cooling, and here at 55C tz0.active is 3, being the zero-based index 
into the active cooling array _ACx (ie, temp > 45C).

 > Heat it up a bit with cpuburn:
 > 
 > chrisw at muji% sysctl hw.acpi.thermal.tz0
 > hw.acpi.thermal.tz0.temperature: 60.0C
 > hw.acpi.thermal.tz0.active: 2
 > hw.acpi.thermal.tz0.passive_cooling: 0
 > hw.acpi.thermal.tz0.thermal_flags: 0
 > hw.acpi.thermal.tz0._PSV: -1
 > hw.acpi.thermal.tz0._HOT: -1
 > hw.acpi.thermal.tz0._CRT: -1
 > hw.acpi.thermal.tz0._ACx: 80.0C 70.0C 55.0C 45.0C -1 -1 -1 -1 -1 -1
 > hw.acpi.thermal.tz0._TC1: -1
 > hw.acpi.thermal.tz0._TC2: -1
 > hw.acpi.thermal.tz0._TSP: -1

And now tz0.active is 2, ie > 55C.  Some fan should be running faster, 
is that anything noticeable?  It could be separate from the CPU fan.

 > hw.acpi.thermal.tz0._CRT will now stay at -1 until I reset it with sysctl.
 > 
 > So I suppose I need to find out where hw.acpi.thermal.tz0._CRT is getting its
 > value from - which must be the ASL.
 > 
 > acpidump -td says
 > 
 >         ThermalZone (TZ0)
 >         {
 > 
 > snip
 > 
 >             Method (_CRT, 0, Serialized)
 >             {
 >                 Return (C316 (0x04, 0x00))
 >             }
 > 
 > snip
 > 
 >          }
 > 
 > The whole asl is fetch(1)able as www.fishercroft.plus.com/nc6320.asl.gz
 > 
 > Watching /var/log/messages I can't see a correlation between when the warning
 > messages appear and changing the temperature states so I don't even know what
 > is actually triggering them.

What's the highest temperature you've observed for that zone?  I wonder 
how that may correlate with your CPU and/or GPU temperatures / zones?

 > I've started reading the ACPI specs as suggested but in the meantime all
 > suggestions welcome.
 > 
 > Thanks
 > 
 > Chris
 > 
 > > 
 > > You might want to take a look at your output of 'sysctl hw.acpi.thermal'
 > > -- your specific thermal zone, might be different from the one, I have
 > > used as an example above. In fact, on my laptop, it is tz1 and not tz0.

As Alexandre says, showing all of the hw.acpi.thermal zones may help.

My earlier guess about maybe being byte-swapped seems more unlikely, I 
forgot these were returned as tenths of a degree Kelvin, not Celcius.

Nate suggested Windows might ignore _crt for this one .. or perhaps this 
odd figure of 256.0C signals something to Windows?  Just speculating .. 

 > > In either case, I would recommend reading thermal chapter of the ACPI
 > > specification -- it is short, well-written and has an example, I was
 > > stealing stuff from, shamelessly, in the past.

Indeed, it's one of the few chapters that made a lot of sense to me :)

cheers, Ian


More information about the freebsd-acpi mailing list