Management of Thermal
smithi at nimnet.asn.au
Mon Oct 8 10:51:25 PDT 2007
On Mon, 8 Oct 2007, Norberto Meijome wrote:
> On Mon, 8 Oct 2007 17:27:56 +1000
> Norberto Meijome <freebsd at meijome.net> wrote:
> > Hello everyone,
> > is there any documentation / resource on how to configure properly the
> > different methods for management of power/thermal related components/services?
> > eg,
> > acpi (acpi_thermal), and all the knobs via sysctl
> > powerd
> > cpufreq
I've often wished there was :) There aren't even man pages for some
components, acpi_throttle and acpi_perf being two I've tried following
some of the code for recently. Most of it well over my head, but there
be clues amongst the dragons.
If you don't solve this, check freebsd-acpi archives since say August
for several too-hot scenarios. This recent one smells similar, and Lars
also mentioned the Cx levels, it's been coming up a bit:
| Also, see if you're using lower Cx levels for cpu idling. They can
| make a big heat difference.
More about that and powerd below ..
> > I'm asking before i've been getting very high temperature (99 degrees, which
> > matches my CRIT value ,on a Thinkpad z60m, Pentium M 2 GHz), when building
> > ports / world.
> > I am not sure whether / how to tell it to use EST properly.
Might be acpi_perf instead? Which of these shows up in dmesg?
> > I can't feel the fans working really hard at all (maybe it's the way it's
> > supposed
> > to
> > work? ) dev.acpi_ibm.0.fan_speed does report over 3K RPM ...
My T23 fan runs near 5k, and is still pretty quiet, but that's pumping
quite hot air onto my hand, steady at about 70C running 2000 invocations
of rexxcps - lame I know; fully cpu intensive but hardly a buildworld.
But then its P3-M is only rated at 1133MHz / 19100mW, with only a
2-speed auto down to 733/12500, so it's not so hard to cool.
My fan seems to come on at around 75C, no idea where that's set.
> > Annoyingly, it will drop down to 100 Mhz - I suppose it is
> > cpufreq kicking in trying to control the temperature, but it's completely
> > unusable. (yes, i've forced it to not less than 932 Mhz, but it still warms up
> > too much).
> > I played a bit with the knobs for *thermal*, but i am not entirely sure i'm
> > improving things... in my sysctl i had (before disabling it all)
> > # Lowest CPU frequency in MHz to offer to users
> > debug.cpufreq.lowest=932
Does that work right? Are you displaying cpu freq in gkrellm or such?
I've not played with thermal settings at all, so can't comment.
> > ### trying to finetune the action of the thermal zones
> > ## man 4 acpi_thermal
> > ## for details
> > ## Defaults:
> > #hw.acpi.thermal.min_runtime: 0
> > #hw.acpi.thermal.polling_rate: 10
> > #hw.acpi.thermal.user_override: 0
> > #hw.acpi.thermal.tz0.temperature: 91.0C
> > #hw.acpi.thermal.tz0.active: -1
> > #hw.acpi.thermal.tz0.passive_cooling: 0
Mine's always 1, man says default on - is this your current setting?
> > #hw.acpi.thermal.tz0.thermal_flags: 0
> > #hw.acpi.thermal.tz0._PSV: 94.5C
> > #hw.acpi.thermal.tz0._HOT: -1
> > #hw.acpi.thermal.tz0._CRT: 99.0C
> > #hw.acpi.thermal.tz0._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
> > ## Custom values
> > hw.acpi.thermal.user_override=1
> > hw.acpi.thermal.min_runtime=10
> > hw.acpi.thermal.polling_rate=5
> > hw.acpi.thermal.tz0.active=85C
> > hw.acpi.thermal.tz0._PSV=90C
Just curious re syntax - do these values read back right after setting?
And if you're overriding, is that the right setting for .tz0.active ?
but I'm well out of my depth here ..
> > Any help / pointers would be greatly appreciated...
The info on tzs and fan settings from acpi_ibm might have clues?
> Some more info :
> $ kldstat
> Id Refs Address Size Name
> 1 34 0xc0400000 4c3d24 kernel
> 2 1 0xc08c4000 836c linprocfs.ko
> 3 3 0xc08cd000 21ebc linux.ko
> 4 1 0xc08ef000 135e0 snd_hda.ko
> 5 2 0xc0903000 68e48 sound.ko
> 6 2 0xc096c000 17920 agp.ko
> 7 2 0xc0984000 666a8 acpi.ko
> 8 1 0xc09eb000 4c4c acpi_ibm.ko
> 9 1 0xc09f0000 b668 cpufreq.ko
> 10 1 0xc09fc000 1d498 kqemu.ko
> 11 1 0xc0a1a000 22140 radeon.ko
> 12 2 0xc0a3d000 10c68 drm.ko
> 13 1 0xc5d86000 c000 ipfw.ko
> 14 1 0xc5e93000 7000 aio.ko
> 15 1 0xc9fbd000 2000 rtc.ko
> Powerd is enabled.
> I am currently doing not much at all (listening to music stream, load
> of 0.24, 0.45, 0.69) and tz0 = 78C. it drops down a lot more when
> running on batteries only
Ouch. Couple of maybes. powerd fights with power_profile, which will
set both dev.cpu.0.freq and hw.acpi.cpu.cx_lowest on AC/battery
transitions, so you might want these in rc.conf (/etc/rc.d/power_profile
for doc :)
as well as the abovementioned *cx_lowest="LOW" to see if it helps - said
to with some setups and not others, sorry just recalling passing notes -
and if so you could try say C2 or C3 setting directly.
Funny thing with my T23 .. if I boot on AC, I can set cx_lowest=C3 but
it only drops back to C2, if hw.acpi.cx_usage is to be believed, but if
I boot on battery and set cx_lowest=C3, all three get used henceforth.
Another thing with powerd - have you tried running it with -v in fg?
With my 2-speed the shift points seem about right, but with lots of
speeds I'd be curious to try optimising the idle / running shifts in
terms of hysteresis, 'hunting' up and down with different loads and
such. 'Someone' could do up some nice graphs :)
Is yours 6-stable? There's also some newer stuff about Cx levels for
SMP systems in -current over in freebsd-acpi.
More information about the freebsd-mobile