--
this patch (ontop of the current -mm scheduler patchset) tweaks cpu_idle() semantics a bit: it changes the idle loops (that do preemption) to call the first schedule() unconditionally.
the advantage is that as a result we dont have to set the idle thread's NEED_RESCHED flag in init_idle(), which in turn makes cond_resched() even more of an invariant: it can be called even from init code without it having any effect. A cond resched in the init codepath hangs otherwise.
this patch, while having no negative side-effects, enables wider use of cond_resched()s. (which might happen in the stock kernel too, but it's particulary important for voluntary-preempt) (note that for now this patch only covers architectures that use kernel/Kconfig.preempt, but all other architectures will work just fine too.)
Signed-off-by: Ingo Molnar <mingo@xxxxxxx>