PowerD quirks and does it recognise a UPS as a battery?
-
I just noticed my router hitting 100C under a 25% load and got curious what was going on. I noticed that what I thought was a UI glitch (not displaying current CPU speed line) was actually that it had been running at turbo constantly for months, regardless of load.
Seems the issue is it was using the unknown power profile, instead of the AC power profile and HiAdaptive for some reason just kept it maxed out.
If I switch to adaptive it constantly switches between 2.2, 2.4 and 2.6Ghz under this load - so am I better off just leaving PowerD disabled so it sits at 2.4Ghz constantly without the latency hit of clock speed changes?
This made me wonder though, I have a UPS and the monitoring widget enabled. Does PowerD have access to this data or will it just stick with the unknown power profile?
Also, why is the i5 7200U operating at 2.4Ghz with PowerD disabled when its supposed to have a 2.5Ghz base clock? It doesn't actually matter for my usage, but its odd.
-
100°C at 25% load seems like a cooling issue, a significant one! Heatsink not connected correctly? Fan stopped?
Check the sysctls for the reported available speeds, for example:
[21.05-RELEASE][admin@5100.stevew.lan]/root: sysctl dev.cpu.0 dev.cpu.0.temperature: 49.0C dev.cpu.0.coretemp.throttle_log: 0 dev.cpu.0.coretemp.tjmax: 91.0C dev.cpu.0.coretemp.resolution: 1 dev.cpu.0.coretemp.delta: 42 dev.cpu.0.cx_method: C1/mwait/hwc C2/mwait/hwc dev.cpu.0.cx_usage_counters: 765153 0 dev.cpu.0.cx_usage: 100.00% 0.00% last 18363us dev.cpu.0.cx_lowest: C1 dev.cpu.0.cx_supported: C1/1/1 C2/2/50 dev.cpu.0.freq_levels: 2200/0 2100/0 2000/0 1900/0 1800/0 1700/0 1600/0 1500/0 1400/0 1300/0 1200/0 1100/0 1000/0 900/0 800/0 dev.cpu.0.freq: 800 dev.cpu.0.%parent: acpi0 dev.cpu.0.%pnpinfo: _HID=none _UID=0 _CID=none dev.cpu.0.%location: handle=\_PR_.CPU0 dev.cpu.0.%driver: cpu dev.cpu.0.%desc: ACPI CPU
As far as I know powerd does not switch between profiles automatically but even if it did it would not see the battery status from apcupsd/nut.
Steve
-
I agree 100c at 25% load is really way out there. I would shut it down, pop off the cooler from the CPU, clean off and reapply the thermal paste. Reseat the cooler, making sure that it is sitting flush on the CPU and that it is locked down properly at all 4 corners or however the cooler locks down. Verify the fan is running- may be worth a few moments time to go into the BIOS and confirm the fan speed that is being reported in the bios, that it is not unusually low. Also make sure that any cables aren't rubbing on the fan blades- I had to move the power cables away from the blades on the cruddy stock cooler that came with my Pentium, they were actually lightly rubbing the blades.
Only other thing I can think off, as the typical cooling is a simple mechanical affair requiring a heatsync and running fan, is an older well worn motherboard having bad capacitors. If the board is older and well used, take a look at the caps around the CPU, (typically look like little round oil drums sticking up) they should have nice flat tops, no bulging and no liquid or stuff that looks like crystalized gunk on top. If it's bulged or cruddy on top it's not going to work well and speedstep goes out the window at that point. The CPU will just race away doing nothing and get hot. The CPU fan will go crazy even when the CPU is lightly loaded. I see this often times on older low-end motherboards that have cheap caps.
-
Its a passively cooled Kettop Mi7200L6 appliance so totally expected to reach those temperatures when boosting.
dev.cpu.0.temperature: 50.0C dev.cpu.0.coretemp.throttle_log: 1 dev.cpu.0.coretemp.tjmax: 100.0C dev.cpu.0.coretemp.resolution: 1 dev.cpu.0.coretemp.delta: 50 dev.cpu.0.cx_method: C1/mwait/hwc C2/mwait/hwc C3/mwait/hwc dev.cpu.0.cx_usage_counters: 175500575 0 0 dev.cpu.0.cx_usage: 100.00% 0.00% 0.00% last 86us dev.cpu.0.cx_lowest: C1 dev.cpu.0.cx_supported: C1/1/1 C2/2/151 C3/3/1034 dev.cpu.0.freq_levels: 2601/15000 2600/14236 2500/13487 2400/12752 2200/11467 2000/10234 1900/9566 1700/8271 1500/7163 1400/6561 1200/5522 1100/4957 800/3461 700/2945 600/2559 400/1586 dev.cpu.0.freq: 2400 dev.cpu.0.%parent: acpi0 dev.cpu.0.%pnpinfo: _HID=none _UID=0 dev.cpu.0.%location: handle=\_PR_.PR00 dev.cpu.0.%driver: cpu dev.cpu.0.%desc: ACPI CPU
The issue here was PowerD staying at max boost at all times, the temperature is only relevant in that HiAdaptive didn't even bother to clock down once it hit tjMax, it was just stuck at 2.6Ghz 24/7 it seems (although its hard to tell, maybe loading up the UI always triggers high clock state in that mode).
With PowerD disabled so a constant 2.4Ghz clock, it instantly brought the temperature down to 75C at the same workload (three OpenVPN clients pushing 60Mbit each). Now its idling at 50C.
-
@alex-atkin-uk said in PowerD quirks and does it recognise a UPS as a battery?:
HiAdaptive didn't even bother to clock down
"Hiadaptive mode is alike adaptive mode, but tuned for systems where performance and interactivity are more important than power consumption. It raises frequency faster, drops slower and keeps twice lower CPU load."
Did you try Adaptive?
-
Mmm, I would want to run it up to 100% CPU and see what it reaches. Just so you know
it won't fry if some process gets stuck unintentionally.powerd doesn't care about the temperature it only changes the CPU frequency as loading varies.
Also tjmax there is only used to determine the actual core temperature from the delta value passed for the sensor. It is passed via ACPI and can be wrong resulting incorrect absolute values. 100 is probably correct for a mobile CPU though
Still that fact it seems to be reaching tjmax (delta 0) at only 25% load would concern me. I would assume the CPU itself is thermal throttling there. That's a 15W TDP CPU and a big lump of heatsink it's attached to. I would check it really is cleanly fixed.
Just as a reference the C3558 in the SG-5100 has a 16W TDP value and I've never seen it go over 60C even when I run all the cores at 100%. It is similarly passively cooled.Steve
-
@SteveITS Adaptive jumped between 2.2, 2.4 and 2.6Ghz, keeping around the same temps as with PowerD off at 2.4Ghz. Its why I figured just leaving PowerD off might make more sense, the difference in power consumption on a 15W CPU is immeasurably low.
I don't think it made more than a watt or two difference when I used a generic PC with a 45W CPU, FreeBSD I suspect is tuned for performance more than power saving as Linux in comparison idled at about half the power consumption of pfSense. Though obviously were on a much newer kernel now.
@stephenw10 Its survived a couple of years already.
I've actually ordered a newer model with the 8250U as I'm curious how the lower clocks but more threads would scale with my setup as I'm currently load balancing over three WANs and three VPN clients.
I suspect it will bottleneck on OpenVPN once I move to Gigabit some time this/next year, but it will give me a chance to see if the CPU thermal transfer can be improved on the 7200U in the meantime.
Was actually impressed as I set it to minimum accidentally while figuring this out and at 400Mhz two WANs were still happily pushing 60Mbit each over OpenVPN, but the third WAN speed throttled. That kinda makes sense on a dual-core I guess, the higher latency link being the one that throttled back.