Date: Mon, 4 Nov 2013 14:53:03 -0500 From: John Baldwin <jhb@freebsd.org> To: freebsd-acpi@freebsd.org Cc: Kevin Oberman <rkoberman@gmail.com>, =?utf-8?q?=E6=9D=8E=E6=A3=AE?= <lisen1001@gmail.com> Subject: Re: Xeon E5 cpu work in low status Message-ID: <201311041453.03864.jhb@freebsd.org> In-Reply-To: <CAN6yY1vyvmuN5UPzzoey4j1EEkgeKX0d62uL3MfhnPDdXCMB7g@mail.gmail.com> References: <CA%2BTSNq_9gGJrc3z_d-AJcqBKr164v5xYs5YRPJAeW_YED-Nb_w@mail.gmail.com> <CAN6yY1vyvmuN5UPzzoey4j1EEkgeKX0d62uL3MfhnPDdXCMB7g@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Monday, November 04, 2013 12:52:53 pm Kevin Oberman wrote: > On Mon, Nov 4, 2013 at 12:46 AM, =E6=9D=8E=E6=A3=AE <lisen1001@gmail.com>= wrote: >=20 > > hi,all: > > the cpu of my machine is : Intel(R) Xeon(R) CPU E5-2643 0 @ > > 3.30GHz. > > > > after a reboot. The cpu freq is : sysctl dev.cpu.0.freq > > dev.cpu.0.freq: 1200 > > > > i didn't set any power savings config in rc.conf. > > > > How can i fix this? > > >=20 > It's not clear what is broken. Is the server busy? Is there some reason to > expect it to be running at full clock-rate? >=20 > What is the content of dev.cpu.0.freq_levels? >=20 > By default, FreeBSD runs powerd and that will, by default, throttle back > the clock when the system is not busy. I think that this is a bad thing., > but it is not a bug. It's by design. I really think, based on my own > testing, research and a major NSF computer center (SDSC), and work done by > mav@ which can be found on the FreeBSD wiki ( > https://wiki.freebsd.org/TuningPowerConsumption), those "power management" > tools are broken by design a they are actually there for thermal control, > not power management and are, at best, break-even, and in most cases are > actually a loser in both power savings and system performance. (There are= a > very few edge cases where they can be beneficial, but as a side effect for > very specific loads under fairly unusual circumstances.) >=20 > To turn off these (mis)features, add the following to /boot/loader.conf: > # Disable CPU throttling > hint.p4tcc.0.disabled=3D1 > hint.acpi_throttle.0.disabled=3D1 >=20 > <rant> > All real power management is through the use of EST and CPU sleep (CX) > states. These can provide a big power win at minimal performance impact. > Unfortunately CX states and throttling lay very badly together, probably > because processor designers don't think that TCC and throttling are for > power management, so are not an issue. >=20 > For reasons that have always baffled me, rather than disable the > inappropriate use of thermal management as power management, we disable t= he > most effective power management tools by default. > performance_cx_lowest=3D"HIGH" # Online CPU idle state > economy_cx_lowest=3D"HIGH" # Offline CPU idle state >=20 > Even the comments are confusing: what do "Online" and "Offline" mean? > Offline means running on battery and online means AC power. >=20 > In any case, it's not clear that there is any issue with your system other > than that, by default, FreeBSD tries to really, really hard to manage pow= er > as badly as humanly possible. > </rant> The only thing is that powerd is not enabled by default, so it shouldn't be set to 1200 out of the box. I think there have been a few laptops=20 historically that would startup at a lower clock speed (EST) when booted on battery, but I've never heard of that for servers. In terms of thermal throttling vs EST: ideally powerd would only ever use E= ST, and the throttling would be driven by acpi_thermal. Most systems don't hav= e=20 the _TC1/_TC2 methods acpi_thermal needs (I think I've only seen it on olde= r=20 laptops), so that would effectively disable TCC on modern systems. This requires tearing cpufreq apart a bit. It's also not clear what we sho= uld display to the user. The simplest approach would be to only export "absolu= te" frequencies in freq_levels and the current "absolute" frequency as "freq". That would allow powerd to not need any changes. You could use a different sysctl node that is "throttling percent" or some such. If throttling kicked in on a system with TC1/TC2 then 'freq' wouldn't change when the CPU was=20 throttled, only the "throttling percent". =2D-=20 John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201311041453.03864.jhb>