Peter Zijlstra d72bce0e67 rcu: Cure load woes
Commit cc3ce5176d83 (rcu: Start RCU kthreads in TASK_INTERRUPTIBLE
state) fudges a sleeping task' state, resulting in the scheduler seeing
a TASK_UNINTERRUPTIBLE task going to sleep, but a TASK_INTERRUPTIBLE
task waking up. The result is unbalanced load calculation.

The problem that patch tried to address is that the RCU threads could
stay in UNINTERRUPTIBLE state for quite a while and triggering the hung
task detector due to on-demand wake-ups.

Cure the problem differently by always giving the tasks at least one
wake-up once the CPU is fully up and running, this will kick them out of
the initial UNINTERRUPTIBLE state and into the regular INTERRUPTIBLE
wait state.

[ The alternative would be teaching kthread_create() to start threads as
  INTERRUPTIBLE but that needs a tad more thought. ]

Reported-by: Damien Wyart <damien.wyart@free.fr>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Paul E. McKenney <paul.mckenney@linaro.org>
Link: http://lkml.kernel.org/r/1306755291.1200.2872.camel@twins
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2011-05-31 10:01:48 +02:00
..
2011-03-31 11:26:23 -03:00
2011-05-28 17:04:59 +02:00
2010-08-09 16:48:42 -04:00
2010-07-14 11:29:46 +02:00
2011-03-31 11:26:23 -03:00
2011-03-14 09:15:23 -04:00
2010-10-30 01:42:19 -04:00
2011-05-19 18:51:57 +10:00
2011-05-26 17:12:34 -07:00
2011-03-31 11:26:23 -03:00
2011-05-29 11:32:28 -07:00
2011-05-17 23:19:17 +02:00
2010-10-01 10:50:58 -07:00
2011-05-24 22:55:24 +10:00
2011-03-31 11:26:23 -03:00
2011-05-26 17:12:34 -07:00
2011-05-26 17:12:34 -07:00
2011-03-31 11:26:23 -03:00
2011-04-18 10:35:30 -07:00
2011-05-24 12:10:51 +02:00
2011-05-20 12:50:29 -07:00
2011-05-31 10:01:48 +02:00
2011-05-31 10:01:48 +02:00
2011-03-31 11:26:23 -03:00
2011-04-24 13:18:38 +02:00
2011-03-23 19:46:51 -07:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00