diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2011-03-21 08:32:17 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2012-03-01 04:28:04 -0500 |
commit | ba74c1448f127649046615ec017bded7b2a76f29 (patch) | |
tree | 33eceaf0c4b35aca095e3e1a678bdbab23006650 /kernel | |
parent | bd2f55361f18347e890d52ff9cfd8895455ec11b (diff) |
sched/rt: Document scheduler related skip-resched-check sites
Create a distinction between scheduler related preempt_enable_no_resched()
calls and the nearly one hundred other places in the kernel that do not
want to reschedule, for one reason or another.
This distinction matters for -rt, where the scheduler and the non-scheduler
preempt models (and checks) are different. For upstream it's purely
documentational.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/n/tip-gs88fvx2mdv5psnzxnv575ke@git.kernel.org
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/sched/core.c | 6 | ||||
-rw-r--r-- | kernel/softirq.c | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 73022395c00e..643cc37fcb23 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
@@ -3220,7 +3220,7 @@ need_resched: | |||
3220 | 3220 | ||
3221 | post_schedule(rq); | 3221 | post_schedule(rq); |
3222 | 3222 | ||
3223 | preempt_enable_no_resched(); | 3223 | sched_preempt_enable_no_resched(); |
3224 | if (need_resched()) | 3224 | if (need_resched()) |
3225 | goto need_resched; | 3225 | goto need_resched; |
3226 | } | 3226 | } |
@@ -3253,7 +3253,7 @@ EXPORT_SYMBOL(schedule); | |||
3253 | */ | 3253 | */ |
3254 | void __sched schedule_preempt_disabled(void) | 3254 | void __sched schedule_preempt_disabled(void) |
3255 | { | 3255 | { |
3256 | preempt_enable_no_resched(); | 3256 | sched_preempt_enable_no_resched(); |
3257 | schedule(); | 3257 | schedule(); |
3258 | preempt_disable(); | 3258 | preempt_disable(); |
3259 | } | 3259 | } |
@@ -4486,7 +4486,7 @@ SYSCALL_DEFINE0(sched_yield) | |||
4486 | __release(rq->lock); | 4486 | __release(rq->lock); |
4487 | spin_release(&rq->lock.dep_map, 1, _THIS_IP_); | 4487 | spin_release(&rq->lock.dep_map, 1, _THIS_IP_); |
4488 | do_raw_spin_unlock(&rq->lock); | 4488 | do_raw_spin_unlock(&rq->lock); |
4489 | preempt_enable_no_resched(); | 4489 | sched_preempt_enable_no_resched(); |
4490 | 4490 | ||
4491 | schedule(); | 4491 | schedule(); |
4492 | 4492 | ||
diff --git a/kernel/softirq.c b/kernel/softirq.c index 79b524767a24..f268369ebe1f 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c | |||
@@ -353,7 +353,7 @@ void irq_exit(void) | |||
353 | tick_nohz_irq_exit(); | 353 | tick_nohz_irq_exit(); |
354 | #endif | 354 | #endif |
355 | rcu_irq_exit(); | 355 | rcu_irq_exit(); |
356 | preempt_enable_no_resched(); | 356 | sched_preempt_enable_no_resched(); |
357 | } | 357 | } |
358 | 358 | ||
359 | /* | 359 | /* |
@@ -759,7 +759,7 @@ static int run_ksoftirqd(void * __bind_cpu) | |||
759 | if (local_softirq_pending()) | 759 | if (local_softirq_pending()) |
760 | __do_softirq(); | 760 | __do_softirq(); |
761 | local_irq_enable(); | 761 | local_irq_enable(); |
762 | preempt_enable_no_resched(); | 762 | sched_preempt_enable_no_resched(); |
763 | cond_resched(); | 763 | cond_resched(); |
764 | preempt_disable(); | 764 | preempt_disable(); |
765 | rcu_note_context_switch((long)__bind_cpu); | 765 | rcu_note_context_switch((long)__bind_cpu); |