Date: Fri, 08 Apr 2011 14:42:04 +0300 From: Alexander Motin <mav@FreeBSD.org> To: =?windows-1252?Q?Daniel_Ger=9Eo?= <danger@rulez.sk> Cc: stable@freebsd.org, brucec@freebsd.org Subject: Re: powerd / cpufreq question Message-ID: <4D9EF48C.9070907@FreeBSD.org> In-Reply-To: <4D9EEDAF.3020803@rulez.sk> References: <4D9EEDAF.3020803@rulez.sk>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi. On 08.04.2011 14:12, Daniel Geržo wrote: > I have a new machine with Xeon(R) CPU X5650 2666.77-MHz and I would like > to utilize powerd(8) on it however, when I run `powerd -v -r90' I see > something like this: > > load 64%, current freq 2668 MHz ( 0), wanted freq 5336 MHz > load 120%, current freq 2668 MHz ( 0), wanted freq 5336 MHz > load 173%, current freq 2668 MHz ( 0), wanted freq 5336 MHz > load 62%, current freq 2668 MHz ( 0), wanted freq 5336 MHz > load 82%, current freq 2668 MHz ( 0), wanted freq 5336 MHz > load 110%, current freq 2668 MHz ( 0), wanted freq 5336 MHz > > even though the machine is according to top(1) ~90% idle; So I realized, > that powerd might take the load as the sum of loads of all the cores > (12), so I tried to tweak powerd arguments like this: > > `powerd -v -r 1000 -i 600' > > but that errors for me with: > > root@[s1-a ~]# powerd -v -r 1000 -i 600 > powerd: 1000 is not a valid percent > > Well, that makes sense, but why powerd itself knows about load > 100% > but doesn't allow me to specify it? Is this bug? I suppose not if it > works for other people... It is reasonable limitation. powerd can't know how load distributed among multiple cores in time. If all cores are equally busy at lets say 10% (that gives 120% total) and cores are never waiting for each other then obviously frequency could be reduced. But if the same 120% mean 100%+20%, or if load is equally spread, but processes on different cores are waiting for each other, then reducing frequency will reduce performance. powerd can't know that and so stays on a safe side. > Other question would be why powerd wants to set freq 5336, when it is > not available at all (would be nice to have it heh.): You may see there it is a "wanted" frequency, not real one. :) It is internal implementation details. In such way powerd implements keeping a full frequency for some time after the load dropped. It's not a bug. On multi-core systems like this power management can better be done on per-core bases. Powerd can't control frequencies on per-core basis (also because it require non-trivial interoperation with scheduler). But if your ACPI BIOS allows, you can try to put unused cores into deeper C-states, that may give better power saving and TurboBoost on busy cores as a bonus. It works better on 9-CURRENT, but on 8-STABLE some bonuses still could be achieved. You may want to look here: http://wiki.freebsd.org/TuningPowerConsumption -- Alexander Motin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D9EF48C.9070907>