Nov 26, 2011

Cooler Pandaboard with newer kernels?

After running some stress tests to analyze the thermal performance of the Pandaboard with a newer OS, the results were surprising...


As we posted before, the Pandaboard omap4430 processor temperature was very high under 100% cpu usage. At that time we were running the system from an Ubuntu 10.10 preinstalled image for the Pandaboard. This system was quite unstable, it freezed all the time, and we usually had to restart it several times each session.


Recently, we installed a newer Ubuntu release for the Omap4 platform, the Ubuntu-Linaro 11.09, and also a headless Angstrom Pandaboard Demo Image built from the Narcissus Angstrom online image builder.

We run the test again, with our experimental code (download binary here, run as root AT YOUR OWN RISK!).

These are the results at 100% cpu load:


Omap4 Ubuntu 10.10 temperature / CPU usage
Ubuntu-Linaro 11.09 temperature / CPU usage
Angstrom (2.6.35.3+) temperature / CPU usage
The Linaro image is the best and most stable system we have tested. The installation is straightforward, besides some issues with the language and time zone configuration. It also offers the possibility to switch to the classic gnome desktop, to avoid the new Unity interface.
Seeing the results, it is obvious that something is different between the systems. The 10.10 reaches a maximum temperature of about 80ºC. The other two systems stay under 69ºC at the same load. The load is more constant on the Angstrom because there are fewer system processes that interfere in the test.



We thought the cause of the temperature difference could be that the newer kernels would scale the CPU frequency to protect itself under high loads. But it seems cpu scaling is not enabled for the omap4430 on these systems. The output of 'cat /proc/cpuinfo' showed the actual frequency of both cores:



SYSTEM
cpuinfo
aprox. frequency
max. temp
Ubuntu
10.10
processor: 0
BogoMIPS: 2013.49
processor: 1
BogoMIPS: 1963.08
1GHz
81ºC
Ubuntu-Linaro 11.09
processor: 0
BogoMIPS: 1576.53
processor: 1
BogoMIPS: 1539.77
800MHz
65ºC
Angstrom
processor: 0
BogoMIPS: 2013.49
processor: 1
BogoMIPS: 1996.68
1GHz
69ºC


We wondered if this was just a bug on the file or the cpu runned underclocked. So we checked out the cpuinfo on a Ubutnu 11.10, and it showed the same numbers as the Linaro 11.09. As in the Angstrom system the frequency is as expected, we don't know if the cpu frequency is the actual reason for a lower maximum temperature of the processor at 100% load. Any clue?


EDIT: Nov 28 07:14AM -0800 
As answered on the Digest for pandaboard at googlegroups by TI representative S. Jan:
    "Yes, this is expected.
     
    Recent Ubuntu and Linaro kernels are based on 3.0 and they do not have smartreflex support enabled. Their voltage is not optimized so they are configured to run at a reduced operating point to avoid heating (so default speed shall be 800MHz for 4430). They do not support dvfs, so you can't change that at run-time.
     
    The kernel delivered with 10.10 (2.6.35 based) used to have smartreflex and dvfs, and could scale to 1GHz.
     
    We are working on a kernel upgrade that can run on top of 11.10, based on 3.1 kernel, that integrates smartreflex and dvfs, and can scale up to max speed."
That is the solution to the mistery!

2 comments:

  1. Nice work compiling this information. I was looking for a way to under clock mu pandaboardES to keep it cool.

    ReplyDelete
    Replies
    1. Just put a nice heatsink (about 30x30x25mm) and forget about overheating :)

      Delete