On 3 May 2014 21:52, Allan Jude <freebsd_at_allanjude.com> wrote: > On 2014-05-04 00:49, Adrian Chadd wrote: >> Hi, >> >> Well, hardware got better. A lot better. I'm happy to leave speedstep >> and throttling in there but teach powerd about using C-states and >> limited frequency stepping if it's available. >> >> So, how about something like this: >> >> * if C states are available - let's just use C states and not step the >> cpu frequency at all; >> * if turboboost is available - enable that, and disable it if we >> notice the CPU runs at the higher frequency for too long; > > If I recall correctly, the BIOS has settings that control and limit how > long the CPU will run in 'turbo boost' mode So, there's daemons running around in SMI or silicon or something else that's doing dirty, dirty things with the target frequency per-core. It seems to monitor the core frequencies and temperatures to decide what a suitable turboboost target is. We could just leave it on and only switch it off (and go to P1 instead of P0, or whatever the nomenclature is) after some long period of time. Or drop to P1 if the cpu temperature is too hot (ie to coax it to cool down quicker.) >> * use cpufreq with some heuristics (like say, only step down to 2/3rd >> the frequency if idle) - and document why that decision is made (eg on >> CPU X, measuring Y at idle, power consumption was minimal at >> frequency=Z.); >> * make sure the lower frequencies and tcc kick in if a thermal cutoff >> is reached; >> * default to using lower Cx states out of the box if they're decided >> to not be buggy. There are a few CPUs for which lower C states cause >> problems but modernish hardware (say, nehalem and later) should be >> fine. > > According to the wiki, in 9.x and onward there is code that is supposed > to detect if the higher Cx states are usable, and not use them if they > are not, but I do not know how well this works. I'm not sure. I think those who care / know enough just put relevant bits into /etc/rc.conf and /boot/loader.conf rather than flipping it on by default. I'm kind of tempted to just flip on Cmax by default and teach powerd to not do cpufreq unless there's a thermal issue. Then take a step back and see what happens. -aReceived on Sun May 04 2014 - 03:29:34 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:48 UTC