Commit ee2f48bc authored by Ingo Molnar's avatar Ingo Molnar

[PATCH] signal latency improvement

This further optimizes the 'kick wakeup' scheduler feature:

 - do not kick any CPU on UP

 - no need to mark the target task for reschedule - it's enough to send an
   interrupt to that CPU, that will initiate a signal processing pass.
parent 27690cd5
...@@ -500,9 +500,12 @@ static int try_to_wake_up(task_t * p, unsigned int state, int sync, int kick) ...@@ -500,9 +500,12 @@ static int try_to_wake_up(task_t * p, unsigned int state, int sync, int kick)
resched_task(rq->curr); resched_task(rq->curr);
} }
success = 1; success = 1;
} else }
if (unlikely(kick) && task_running(rq, p)) #if CONFIG_SMP
resched_task(rq->curr); else
if (unlikely(kick) && task_running(rq, p) && (p->thread_info->cpu != smp_processor_id()))
smp_send_reschedule(p->thread_info->cpu);
#endif
p->state = TASK_RUNNING; p->state = TASK_RUNNING;
} }
task_rq_unlock(rq, &flags); task_rq_unlock(rq, &flags);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment