Commit 9c63d9c0 authored by Ingo Molnar's avatar Ingo Molnar

sched: sync wakeups preempt too

make sure sync wakeups preempt too - the scheduler will not
overschedule as we've got various throttles against that.
As a result, sync wakeups can be used more widely in the kernel
(to signal wakeup affinity between tasks), and no arbitrary
latencies will be introduced either.
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 71e20f18
...@@ -1596,16 +1596,7 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state, int sync) ...@@ -1596,16 +1596,7 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state, int sync)
schedstat_inc(p, se.nr_wakeups_remote); schedstat_inc(p, se.nr_wakeups_remote);
update_rq_clock(rq); update_rq_clock(rq);
activate_task(rq, p, 1); activate_task(rq, p, 1);
/* check_preempt_curr(rq, p);
* Sync wakeups (i.e. those types of wakeups where the waker
* has indicated that it will leave the CPU in short order)
* don't trigger a preemption, if the woken up task will run on
* this cpu. (in this case the 'I will reschedule' promise of
* the waker guarantees that the freshly woken up task is going
* to be considered on this CPU.)
*/
if (!sync || rq->curr == rq->idle)
check_preempt_curr(rq, p);
success = 1; success = 1;
out_running: out_running:
......
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