Am Wed, 12 Feb 2014 17:01:23 +0200 hat Grazvydas Ignotas notasas@gmail.com geschrieben:
Hi,
Working with fixed speeds should make measuring easier ;)
Yes it's the same as on desktop, install cpufrequtils and change governors, performance governor should use max clock and userspace one should allow changing clock by writing to /sys/devices/system/cpu/cpu0/cpufreq/* files.
Thanks, that works.
I did some testings, and it seems there really is something weird going on here, could probably need a lot of optimizations.
First, according to cpufreq-info -l, there are only three clock speeds available: 500MHz, 1GHz, 1,5GHz.
So the lowest setting the EVM should do would be 500MHz. That's quite high, but it seems it's fixed like that in the kernel.
Now for the interesting part: When I set the CPU speed manually, I can see an increase of the powerconsumption when going from 1GHz to 1,5GHz (about 0,1A with 5V) However, there's absolutely no difference between 500MHz and 1GHz.
Which is pretty weird.
I used powertop to do some more measurements. (Didn't think it would work, but it seems to do so on the BeagleBone: http://zeldor.biz/2012/11/beaglebone-optimize-power-consumption/)
When the CPU Speed is manually set to 1,5GHz, Frequency Stats show after a bit of waiting: 100%: 1,5GHz 0%: 1GHz 0%: 500MHz 0%: Idle
When switching the CPU speed to 1GHz, it shows: 0,1%: 1,5GHz 99,9%: 1GHz 0%: 500MHz 0%: Idle
And when switching the CPU speed to 500MHz: 0,1%: 1,5GHz 99,9%: 1GHz 0%: 500MHz 0%: Idle
Here are the measurements I did with various clock speeds with the multimeter:
Just sitting in X, doing nothing:
500MHz: 0,559 A 1GHz: 0,559 A 1,5GHz: 0,625 A
Using stress to get 100% CPU:
500MHz: 0,843 A 1GHz: 0,843 A 1,5GHz: 1,289 A
It looks like for some reason the clock won't go lower than 1GHz right now (both based on Powertop reports and the power consumption doesn't change)
Something seems broken here.
I wonder what the difference under full load for 500MHz should really be, compared to 1GHz. From 1GHz to 1,5GHz it's 350mA, so would that mean I would go down to approx. 0,5A when maxing both cores at 500MHz?
These values are with all features enabled on the PCB, with Ethernet, HDMI, USB keyboard and our devboard connected.
That wouldn't be that bad.
According to ARM, a CortexA9 should have a performance increase of about 50% compared to an A8 at same clock speed, and the A15 again a 50% increase to an A9.
This would mean... a 1,2GHz CortexA8 would be as fast as a 800MHz CortexA9, which would be as fast as a 533MHz CortexA15. Or am I getting something wrong? (so with 1,5GHz CortexA15 dualcore, it would be like 6 Pandoras...?)
If the SoC runs at 500MHz with both cores and would use 0,5A max. (including all that stuff on the EVM enabled), that would be 2 Pandoras with full load using 2,5W.
If that's true, then that's pretty good (would be 6,5h battery time). If we disable one core and set one to 500MHz, it would be like a 1GHz Pandora at 13h battery time under full load...
Anyways, I'll see if it's possible to increase the battery size a bit. With 1,5GHz, it really starts to eat battery, though I doubt under normal circumstances it would need full load...
A tool that might also help: https://github.com/omapconf/omapconf/wiki
ondemand-governor might also not be OMAP-optimized yet.
Seems like for OMAP, cpufreq_transition_latency should be set to 30ms. https://blueprints.launchpad.net/linaro-power-kernel/+spec/improve-cpufreq-o... http://lists.linaro.org/pipermail/linaro-dev/2010-November/001636.html
Right now, it's set to 300ms.