lkml.org 
[lkml]   [2005]   [May]   [14]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateSat, 14 May 2005 16:27:56 +0200
FromIngo Molnar <>
SubjectRe: Does smp_reschedule_interrupt really reschedule?
* Steven Rostedt <rostedt@goodmis.org> wrote:

> In finish_task_switch, we have:
> 
> #if defined(CONFIG_PREEMPT_RT) && defined(CONFIG_SMP)
> 	/*
> 	 * If we pushed an RT task off the runqueue,
> 	 * then kick other CPUs, they might run it:
> 	 */
> 	if (unlikely(rt_task(current) && prev->array && rt_task(prev))) {
> 		rt_overload_schedule++;
> 		smp_send_reschedule_allbutself();
> 	}
> #endif
> 
> 
> Here's my question, where does CPU1 get need_resched set?  As 
> discussed earlier, smp_send_reschedule_allbutself doesn't do it.

hm, you are right - the 'kick other CPUs' portion of RT-overload 
handling (which is a new scheduler feature currently being tested in the 
-RT kernel) is missing this step. So we might as well force a reschedule 
from the IPI handler - the way you suggested it. We might overdo 
scheduling a bit, but it cannot hurt - and it will definitely make a 
difference for the case where an RT task is waiting to be run.
the vanilla kernel is not affected.

	Ingo
-
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-14 16:31    [from the cache]
©2003-2008