[lkml]   [2005]   [May]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Does smp_reschedule_interrupt really reschedule?

* Steven Rostedt <> 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.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-05-14 16:31    [W:0.025 / U:1.900 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site