Re: [patch] remove set_tsk_need_resched() from init_idle()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ingo Molnar <[email protected]> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux