sched: make !hrtick faster
it is safe to ignore timers and flags when the feature is disabled. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
committed by
Ingo Molnar
parent
45c01e8249
commit
f333fdc909
@@ -4134,7 +4134,7 @@ asmlinkage void __sched schedule(void)
|
|||||||
struct task_struct *prev, *next;
|
struct task_struct *prev, *next;
|
||||||
unsigned long *switch_count;
|
unsigned long *switch_count;
|
||||||
struct rq *rq;
|
struct rq *rq;
|
||||||
int cpu;
|
int cpu, hrtick = sched_feat(HRTICK);
|
||||||
|
|
||||||
need_resched:
|
need_resched:
|
||||||
preempt_disable();
|
preempt_disable();
|
||||||
@@ -4149,7 +4149,8 @@ need_resched_nonpreemptible:
|
|||||||
|
|
||||||
schedule_debug(prev);
|
schedule_debug(prev);
|
||||||
|
|
||||||
hrtick_clear(rq);
|
if (hrtick)
|
||||||
|
hrtick_clear(rq);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Do the rq-clock update outside the rq lock:
|
* Do the rq-clock update outside the rq lock:
|
||||||
@@ -4197,7 +4198,8 @@ need_resched_nonpreemptible:
|
|||||||
} else
|
} else
|
||||||
spin_unlock_irq(&rq->lock);
|
spin_unlock_irq(&rq->lock);
|
||||||
|
|
||||||
hrtick_set(rq);
|
if (hrtick)
|
||||||
|
hrtick_set(rq);
|
||||||
|
|
||||||
if (unlikely(reacquire_kernel_lock(current) < 0))
|
if (unlikely(reacquire_kernel_lock(current) < 0))
|
||||||
goto need_resched_nonpreemptible;
|
goto need_resched_nonpreemptible;
|
||||||
|
Reference in New Issue
Block a user