How can I detect and monitor cpu temperature throttling?

We are running into a situation with our video capture/encode boards where instead of
the normal cpu utilization (each encode process uses 30%, overall usage around 50%, measured with top). The cpu utilization of each encode process goes op to 100-110% and the overall
goes up to 95%. At the same time what was a smooth video stream seems to drop to a lower
frame rate.

Note we run a script to turn on all the cpus and increase the frequency to the max.

It does seem as if this condition can be cleared with a power cycle.

We are monitoring the temperature by looking at /sys/devices/c250000.i2c/i2c-7/7-004c/ext_temperature. We see this go as high as 107F.

I suspect that the system may be throttling back the CPUS due to temperature, but I would
like to know for sure, and understand the thresholds better.

a) Is there a way to see if the CPU (or other component) is being throttled by looking
at a file in /sys somewhere?

b) Is the i2c device specified (I just searched for temperature) the best way to
monitor the temp? Are there other sensor zones? How can they be monitored.

c) Has anyone run into a similar situation, and if so how were you able to resolve it.

Thanks in Advance,


Not sure, but I’d expect throttling to be logged in kernel messages:

dmesg --follow

You can check

ls /sys/class/thermal/