Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1e819950 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

sched: optimize schedule() a bit on SMP



optimize schedule() a bit on SMP, by moving the rq-clock update
outside the rq lock.

code size is the same:

      text    data     bss     dec     hex filename
     25725    2666      96   28487    6f47 sched.o.before
     25725    2666      96   28487    6f47 sched.o.after

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 08ec3df5
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -3481,9 +3481,13 @@ need_resched_nonpreemptible:

	schedule_debug(prev);

	spin_lock_irq(&rq->lock);
	clear_tsk_need_resched(prev);
	/*
	 * Do the rq-clock update outside the rq lock:
	 */
	local_irq_disable();
	__update_rq_clock(rq);
	spin_lock(&rq->lock);
	clear_tsk_need_resched(prev);

	if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) {
		if (unlikely((prev->state & TASK_INTERRUPTIBLE) &&