It seems CPU hotplug conflicts thermal engine

901 views
Skip to first unread message

Jaebaek Seo

unread,
Jan 7, 2015, 9:08:18 PM1/7/15
to android...@googlegroups.com
Hi, i try to fix CPU frequency as maximum in Nexus 5.

Two days ago, i succeeded in turning on all cores and making their frequencies maximum.
However, it suddenly does not work :(

How did i turn on all cores and making their frequecies max?
By writing init scripts (rc script) in android_platform/devices/lge/hammerhead/init.hammerhead.rc.
My init scripts echoing /sys/devices/system/cpu/cpu#/online and /sys/devices/system/cpu/cpu#/cpufreq/scaling_max/min_freq.
Moreover, i turn off mpdecision daemon.

I tried to check out whether the echoing deliver the requests to kernel code
by inserting printk() into store_online() of kernel_source/drivers/base/cpu.c

It was working two days ago, but now it does not work ..

I saw coincidentally a adb logcat message:
E/ThermalEngine(  188): Unable to read max frequency from online cpu.
E/ThermalEngine(  188): Failed to set desired CPU[1] frequency limit to 2265600

It seems "ThermalEngine" blocks the echoing.

So my questions are:
1. Is my analogy correct?
2. How can I turn off "ThermalEngine"? and will it have no critical impact on the system? (for example, what if it destroys my phone?!)
3. As I understood, there might be other system daemons which have impact on cpu freq or cpu on/off. If i guess it correctly, how can i control them?

Durgadoss Ramanathan

unread,
Jan 9, 2015, 1:32:30 AM1/9/15
to android...@googlegroups.com
I am not sure if this ThermalEngine is a native daemon or a Java service, part of system server.

If it is a native standalone daemon, you can look at init.rc files which will start this daemon on some condition. You can try commenting it out (of course, building, flashing the new image etc..)

If it is a Java system service (part of system server, unlikely though) you can edit SystemServer.java in frameworks/base/services/com/android/server and try commenting out the line that starts this ThermalEngine (if any)

On the kernel side, the value of the Sysfs interfaces are not retained very well over a suspend/resume cycle.
There were patches to fix this behavior but not sure whether your kernel version contains those patches.
If this is the case, your best bet to ask in linux-pm mailing list, quoting your kernel version.

As you mentioned, turning off ThermalEngine might have some impact but not to a great extent like bricking the phone etc..


Thanks,
Durga

--
--
unsubscribe: android-kerne...@googlegroups.com
website: http://groups.google.com/group/android-kernel
---
You received this message because you are subscribed to the Google Groups "Android Linux Kernel Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to android-kerne...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Regards
Durgadoss
Reply all
Reply to author
Forward
0 new messages