lkml.org 
[lkml]   [2005]   [May]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch] remove set_tsk_need_resched() from init_idle()
Ingo Molnar <mingo@elte.hu> wrote:
>
> ..
>
> 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.)
>
> --- linux/arch/x86_64/kernel/process.c.orig
> +++ linux/arch/x86_64/kernel/process.c
> @@ -162,6 +162,8 @@ EXPORT_SYMBOL_GPL(cpu_idle_wait);
> */
> void cpu_idle (void)
> {
> + set_tsk_need_resched(current);
> +
> /* endless idle loop with no priority at all */
> while (1) {
> while (!need_resched()) {

ia64 needed this treatment also to fix a hang during boot. u o me 3 hrs.

Are all the other architectures busted as well?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-05-25 14:28    [W:0.050 / U:0.196 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site