[AT&T, Rogers HTC One X, Telstra One XL] vanja_z:
Using Rohans kernel to overclock my One XL,

http://xdaforums.com/showthread.php?t=1892108

I ran in to a problem where the thermal daemon forced the CPU clocks back to 1512 as soon as any CPU intensive application was launched thus removing any advantage. I have tested both the inbuilt CM10 "set on boot" and "No-frills CPU control" and found the same behaviour.

Here is my logcat output from boot showing the relevant information,

adb logcat | grep Thermal

E/ThermalDaemon( 222): Thermal daemon started
E/ThermalDaemon( 222): Threshold 0 Action[0] : none
E/ThermalDaemon( 222): Threshold 1 Action[0] : none
E/ThermalDaemon( 222): Threshold 2 Action[0] : none
E/ThermalDaemon( 222): Threshold 0 Action Info[0] : 0.000000
E/ThermalDaemon( 222): Threshold 1 Action Info[0] : 0.000000
E/ThermalDaemon( 222): Threshold 2 Action Info[0] : 0.000000
E/ThermalDaemon( 222): Threshold 0 Action[0] : cpu
E/ThermalDaemon( 222): Threshold 1 Action[0] : cpu
E/ThermalDaemon( 222): Threshold 2 Action[0] : cpu
E/ThermalDaemon( 222): Threshold 3 Action[0] : cpu
E/ThermalDaemon( 222): Threshold 4 Action[0] : cpu
E/ThermalDaemon( 222): Threshold 4 Action[1] : lcd
E/ThermalDaemon( 222): Threshold 4 Action[2] : flashlight
E/ThermalDaemon( 222): Threshold 4 Action[3] : battery
E/ThermalDaemon( 222): Threshold 4 Action[4] : vibrator
E/ThermalDaemon( 222): Threshold 4 Action[5] : gpu
E/ThermalDaemon( 222): Threshold 5 Action[0] : cpu
E/ThermalDaemon( 222): Threshold 5 Action[1] : lcd
E/ThermalDaemon( 222): Threshold 5 Action[2] : flashlight
E/ThermalDaemon( 222): Threshold 5 Action[3] : battery
E/ThermalDaemon( 222): Threshold 5 Action[4] : vibrator
E/ThermalDaemon( 222): Threshold 5 Action[5] : gpu
E/ThermalDaemon( 222): Threshold 6 Action[0] : cpu
E/ThermalDaemon( 222): Threshold 6 Action[1] : lcd
E/ThermalDaemon( 222): Threshold 6 Action[2] : flashlight
E/ThermalDaemon( 222): Threshold 6 Action[3] : battery
E/ThermalDaemon( 222): Threshold 6 Action[4] : vibrator
E/ThermalDaemon( 222): Threshold 6 Action[5] : gpu
E/ThermalDaemon( 222): Threshold 6 Action[6] : shutdown
E/ThermalDaemon( 222): Threshold 0 Action Info[0] : 1512000.000000
E/ThermalDaemon( 222): Threshold 1 Action Info[0] : 1242000.000000
E/ThermalDaemon( 222): Threshold 2 Action Info[0] : 1134000.000000
E/ThermalDaemon( 222): Threshold 3 Action Info[0] : 918000.000000
E/ThermalDaemon( 222): Threshold 4 Action Info[0] : 594000.000000
E/ThermalDaemon( 222): Threshold 4 Action Info[1] : 255.000000
E/ThermalDaemon( 222): Threshold 4 Action Info[2] : 0.000000
E/ThermalDaemon( 222): Threshold 4 Action Info[3] : 0.000000
E/ThermalDaemon( 222): Threshold 4 Action Info[4] : 0.000000
E/ThermalDaemon( 222): Threshold 4 Action Info[5] : 200000000.000000
E/ThermalDaemon( 222): Threshold 5 Action Info[0] : 384000.000000
E/ThermalDaemon( 222): Threshold 5 Action Info[1] : 30.000000
E/ThermalDaemon( 222): Threshold 5 Action Info[2] : 1.000000
E/ThermalDaemon( 222): Threshold 5 Action Info[3] : 3.000000
E/ThermalDaemon( 222): Threshold 5 Action Info[4] : 1.000000
E/ThermalDaemon( 222): Threshold 5 Action Info[5] : 27000000.000000
E/ThermalDaemon( 222): Threshold 6 Action Info[0] : 384000.000000
E/ThermalDaemon( 222): Threshold 6 Action Info[1] : 30.000000
E/ThermalDaemon( 222): Threshold 6 Action Info[2] : 1.000000
E/ThermalDaemon( 222): Threshold 6 Action Info[3] : 3.000000
E/ThermalDaemon( 222): Threshold 6 Action Info[4] : 1.000000
E/ThermalDaemon( 222): Threshold 6 Action Info[5] : 27000000.000000
E/ThermalDaemon( 222): Threshold 6 Action Info[6] : 5000.000000
E/ThermalDaemon( 222): Threshold 0 Action[0] : none
E/ThermalDaemon( 222): Threshold 0 Action Info[0] : 0.000000
E/ThermalDaemon( 222): Threshold 0 Action[0] : none
E/ThermalDaemon( 222): Threshold 0 Action Info[0] : 0.000000
E/ThermalDaemon( 222): Threshold 0 Action[0] : cpu
E/ThermalDaemon( 222): Threshold 1 Action[0] : cpu
E/ThermalDaemon( 222): Threshold 2 Action[0] : cpu
E/ThermalDaemon( 222): Threshold 3 Action[0] : cpu
E/ThermalDaemon( 222): Threshold 3 Action[1] : lcd
E/ThermalDaemon( 222): Threshold 3 Action[2] : flashlight
E/ThermalDaemon( 222): Threshold 3 Action[3] : battery
E/ThermalDaemon( 222): Threshold 3 Action[4] : vibrator
E/ThermalDaemon( 222): Threshold 3 Action[5] : gpu
E/ThermalDaemon( 222): Threshold 4 Action[0] : cpu
E/ThermalDaemon( 222): Threshold 4 Action[1] : lcd
E/ThermalDaemon( 222): Threshold 4 Action[2] : flashlight
E/ThermalDaemon( 222): Threshold 4 Action[3] : battery
E/ThermalDaemon( 222): Threshold 4 Action[4] : vibrator
E/ThermalDaemon( 222): Threshold 4 Action[5] : gpu
E/ThermalDaemon( 222): Threshold 5 Action[0] : cpu
E/ThermalDaemon( 222): Threshold 5 Action[1] : lcd
E/ThermalDaemon( 222): Threshold 5 Action[2] : flashlight
E/ThermalDaemon( 222): Threshold 5 Action[3] : battery
E/ThermalDaemon( 222): Threshold 5 Action[4] : vibrator
E/ThermalDaemon( 222): Threshold 5 Action[5] : gpu
E/ThermalDaemon( 222): Threshold 5 Action[6] : shutdown
E/ThermalDaemon( 222): Threshold 0 Action Info[0] : 1242000.000000
E/ThermalDaemon( 222): Threshold 1 Action Info[0] : 1134000.000000
E/ThermalDaemon( 222): Threshold 2 Action Info[0] : 918000.000000
E/ThermalDaemon( 222): Threshold 3 Action Info[0] : 594000.000000
E/ThermalDaemon( 222): Threshold 3 Action Info[1] : 255.000000
E/ThermalDaemon( 222): Threshold 3 Action Info[2] : 0.000000
E/ThermalDaemon( 222): Threshold 3 Action Info[3] : 0.000000
E/ThermalDaemon( 222): Threshold 3 Action Info[4] : 0.000000
E/ThermalDaemon( 222): Threshold 3 Action Info[5] : 200000000.000000
E/ThermalDaemon( 222): Threshold 4 Action Info[0] : 384000.000000
E/ThermalDaemon( 222): Threshold 4 Action Info[1] : 30.000000
E/ThermalDaemon( 222): Threshold 4 Action Info[2] : 1.000000
E/ThermalDaemon( 222): Threshold 4 Action Info[3] : 3.000000
E/ThermalDaemon( 222): Threshold 4 Action Info[4] : 1.000000
E/ThermalDaemon( 222): Threshold 4 Action Info[5] : 27000000.000000
E/ThermalDaemon( 222): Threshold 5 Action Info[0] : 384000.000000
E/ThermalDaemon( 222): Threshold 5 Action Info[1] : 30.000000
E/ThermalDaemon( 222): Threshold 5 Action Info[2] : 1.000000
E/ThermalDaemon( 222): Threshold 5 Action Info[3] : 3.000000
E/ThermalDaemon( 222): Threshold 5 Action Info[4] : 1.000000
E/ThermalDaemon( 222): Threshold 5 Action Info[5] : 27000000.000000
E/ThermalDaemon( 222): Threshold 5 Action Info[6] : 5000.000000
E/ThermalDaemon( 222): Threshold 0 Action[0] : gpu
E/ThermalDaemon( 222): Threshold 1 Action[0] : gpu
E/ThermalDaemon( 222): Threshold 2 Action[0] : gpu
E/ThermalDaemon( 222): Threshold 3 Action[0] : gpu
E/ThermalDaemon( 222): Threshold 0 Action Info[0] : 400000000.000000
E/ThermalDaemon( 222): Threshold 1 Action Info[0] : 300000000.000000
E/ThermalDaemon( 222): Threshold 2 Action Info[0] : 200000000.000000
E/ThermalDaemon( 222): Threshold 3 Action Info[0] : 27000000.000000
E/ThermalDaemon( 222): Number of cpus :2
E/ThermalDaemon( 222): Sensor setup:[pa_therm0]
E/ThermalDaemon( 222): Sensor setup:[tsens_tz_sensor0]
E/ThermalDaemon( 222): Sensor setup:[tsens_tz_sensor1]
E/ThermalDaemon( 222): Sensor setup:[tsens_tz_sensor2]
E/ThermalDaemon( 222): Sensor setup:[tsens_tz_sensor3]
E/ThermalDaemon( 222): Sensor setup:[tsens_tz_sensor4]
E/ThermalDaemon( 222): No rules to monitor sensor 'pa_therm1' disabled: 1 num_thresholds: 0
E/ThermalDaemon( 222): TSENS uevent :tsens_tz_sensor0
E/ThermalDaemon( 222): TSENS uevent :tsens_tz_sensor0
E/ThermalDaemon( 222): Sensor 'tsens_tz_sensor0' - alarm raised 1 at 50.0 degC
E/ThermalDaemon( 222): ACTION: CPU - Setting CPU[0] to 1512000
E/ThermalDaemon( 222): ACTION: CPU - Setting CPU[1] to 1512000
E/ThermalDaemon( 222): ACTION: HOTPLUG critical failsafe cleared - Sensor 'tsens_tz_sensor2' - temperature 55, mpdecision_active 0
E/ThermalDaemon( 222): connect error on MPDECISION_SOCKET - Connection refused
E/ThermalDaemon( 222): ACTION: HOTPLUG critical failsafe cleared - Sensor 'tsens_tz_sensor2' - temperature 52, mpdecision_active 0
E/ThermalDaemon( 222): connect error on MPDECISION_SOCKET - Connection refused
E/ThermalDaemon( 222): ACTION: HOTPLUG critical failsafe cleared - Sensor 'tsens_tz_sensor2' - temperature 51, mpdecision_active 0
E/ThermalDaemon( 222): connect error on MPDECISION_SOCKET - Connection refused
E/ThermalDaemon( 222): ACTION: HOTPLUG critical failsafe cleared - Sensor 'tsens_tz_sensor2' - temperature 52, mpdecision_active 0
E/ThermalDaemon( 222): connect error on MPDECISION_SOCKET - Connection refused
E/ThermalDaemon( 222): ACTION: HOTPLUG critical failsafe cleared - Sensor 'tsens_tz_sensor2' - temperature 52, mpdecision_active 0
E/ThermalDaemon( 222): connect error on MPDECISION_SOCKET - Connection refused
E/ThermalDaemon( 222): ACTION: HOTPLUG critical failsafe cleared - Sensor 'tsens_tz_sensor2' - temperature 52, mpdecision_active 0
E/ThermalDaemon( 222): connect error on MPDECISION_SOCKET - Connection refused
E/ThermalDaemon( 222): ACTION: HOTPLUG critical failsafe cleared - Sensor 'tsens_tz_sensor2' - temperature 50, mpdecision_active 0
E/ThermalDaemon( 222): connect error on MPDECISION_SOCKET - Connection refused
E/ThermalDaemon( 222): ACTION: HOTPLUG critical failsafe cleared - Sensor 'tsens_tz_sensor2' - temperature 50, mpdecision_active 0
E/ThermalDaemon( 222): connect error on MPDECISION_SOCKET - Connection refused
E/ThermalDaemon( 222): ACTION: HOTPLUG critical failsafe cleared - Sensor 'tsens_tz_sensor2' - temperature 52, mpdecision_active 0
E/ThermalDaemon( 222): connect error on MPDECISION_SOCKET - Connection refused
E/ThermalDaemon( 222): ACTION: HOTPLUG critical failsafe cleared - Sensor 'tsens_tz_sensor2' - temperature 52, mpdecision_active 0
E/ThermalDaemon( 222): connect error on MPDECISION_SOCKET - Connection refused
E/ThermalDaemon( 222): ACTION: HOTPLUG critical failsafe cleared - Sensor 'tsens_tz_sensor2' - temperature 53, mpdecision_active 0
E/ThermalDaemon( 222): connect error on MPDECISION_SOCKET - Connection refused
E/ThermalDaemon( 222): Modem thermal mitigation available.
E/ThermalDaemon( 222): ACTION: HOTPLUG critical failsafe cleared - Sensor 'tsens_tz_sensor2' - temperature 54, mpdecision_active 0
E/ThermalDaemon( 222): connect error on MPDECISION_SOCKET - Connection refused
E/ThermalDaemon( 222): ACTION: HOTPLUG critical failsafe cleared - Sensor 'tsens_tz_sensor2' - temperature 53, mpdecision_active 0
E/ThermalDaemon( 222): connect error on MPDECISION_SOCKET - Connection refused
E/ThermalDaemon( 222): ACTION: HOTPLUG critical failsafe cleared - Sensor 'tsens_tz_sensor2' - temperature 55, mpdecision_active 0
E/ThermalDaemon( 222): connect error on MPDECISION_SOCKET - Connection refused
E/ThermalDaemon( 222): ACTION: HOTPLUG critical failsafe cleared - Sensor 'tsens_tz_sensor2' - temperature 55, mpdecision_active 0
E/ThermalDaemon( 222): connect error on MPDECISION_SOCKET - Connection refused
E/ThermalDaemon( 222): ACTION: HOTPLUG critical failsafe cleared - Sensor 'tsens_tz_sensor2' - temperature 54, mpdecision_active 0
E/ThermalDaemon( 222): Sensor 'tsens_tz_sensor4' - alarm raised 1 at 50.0 degC
E/ThermalDaemon( 222): ACTION: GPU - Setting GPU to 400000000
E/ThermalDaemon( 222): Sensor 'tsens_tz_sensor4' - alarm cleared 1 at 40.0 degC
E/ThermalDaemon( 222): ACTION: LCD - Setting max LCD brightness to 255
E/ThermalDaemon( 222): Fusion mitigation failed - QMI registration incomplete
E/ThermalDaemon( 222): ACTION: FLASHLIGHT - Enable flashlight switch
E/ThermalDaemon( 222): ACTION: VIBRATOR - Enable vibrator switch
E/ThermalDaemon( 222): ACTION: GPU - Setting GPU to 400000000
E/ThermalDaemon( 222): Sensor 'tsens_tz_sensor0' - alarm cleared 1 at 40.0 degC
E/ThermalDaemon( 222): ACTION: CPU - Setting CPU[0] to 1998000
E/ThermalDaemon( 222): ACTION: CPU - Setting CPU[1] to 1998000
E/ThermalDaemon( 222): Fusion mitigation failed - QMI registration incomplete
E/ThermalDaemon( 222): ACTION: FLASHLIGHT - Enable flashlight switch
E/ThermalDaemon( 222): ACTION: VIBRATOR - Enable vibrator switch
E/ThermalDaemon( 222): ACTION: GPU - Setting GPU to 400000000
E/ThermalDaemon( 222): TSENS uevent :tsens_tz_sensor0
E/ThermalDaemon( 222): Enabled upper int when uevent does not trigger alarm raisd
E/ThermalDaemon( 222): TSENS uevent :tsens_tz_sensor0
E/ThermalDaemon( 222): Sensor 'tsens_tz_sensor0' - alarm raised 1 at 52.0 degC
E/ThermalDaemon( 222): ACTION: CPU - Setting CPU[0] to 1512000
E/ThermalDaemon( 222): ACTION: CPU - Setting CPU[1] to 1512000
E/ThermalDaemon( 222):

Reproducing:

I have found that very rarely, after a fresh reboot, the thermal limit doesn't kick in if you launch an app before the phone has gone to sleep. After at least one sleep, it always happens.

The solution:

DISCLAIMER: This may well ruin your device, the thermal limits are there to prevent thermal damage so mess with them at your own risk.

Modify the thermal settings, these are stored in /system/etc/thermal.conf

adb shell
su
cp /system/etc/thermald.conf /storage/sdcard0/thermald.conf.backup
mount -o rw,remount /system
vim /system/etc/thermald.conf

Now edit the file and replace 1512000 with whatever you want your maximum speed to be at the first thermal alarm (around 50 dec C), I used 1998000 and reboot your phone.

I hope this info comes in handy for someone else and if I've done anything wrong or there's an easier way to get around this please let me know!

Cheers,

Vanja