cpufreq: interactive: Fix blocked task warnings

Running a kernel that never enables the interactive cpufreq
will eventually hit the following warning:

INFO: task kinteractiveup:112 blocked for more than 120 seconds.
kinteractiveup  D c07ae3a4  7072   112      2 0x00000000
[<c07ae3a4>] (__schedule+0x4e4/0x5c4) from [<c00a1b8c>] (kthread+0x70/0x94)
[<c00a1b8c>] (kthread+0x70/0x94) from [<c000f368>]
(kernel_thread_exit+0x0/0x8)

due to the fact that the kthread is never woken up after being
forked. Kick the thread to its idle loop so that it can
schedule() and move out of the D state.

Change-Id: Idc490e707d9a14dd143306a8ee1c2241320d29d5
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
This commit is contained in:
Stephen Boyd 2012-10-29 12:45:01 -07:00
parent d775709793
commit d7574b90d8

View file

@ -972,6 +972,9 @@ static int __init cpufreq_interactive_init(void)
spin_lock_init(&down_cpumask_lock);
mutex_init(&set_speed_lock);
/* Kick the kthread to idle */
wake_up_process(up_task);
idle_notifier_register(&cpufreq_interactive_idle_nb);
INIT_WORK(&inputopen.inputopen_work, cpufreq_interactive_input_open);
return cpufreq_register_governor(&cpufreq_gov_interactive);