diff options
author | Davidlohr Bueso <dave@stgolabs.net> | 2019-01-03 18:28:48 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-01-04 16:13:48 -0500 |
commit | 34ec35ad8f5f4624e8391dbb83afb4c791f027e3 (patch) | |
tree | 78a75ab321b42e345f2bd36d7c4b340764208b65 | |
parent | 3bb5f4ac55dd91d516e7e36b45c94bd57efbb068 (diff) |
kernel/sched/: remove caller signal_pending branch predictions
This is already done for us internally by the signal machinery.
Link: http://lkml.kernel.org/r/20181116002713.8474-3-dave@stgolabs.net
Signed-off-by: Davidlohr Bueso <dave@stgolabs.net>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | kernel/sched/core.c | 2 | ||||
-rw-r--r-- | kernel/sched/swait.c | 2 | ||||
-rw-r--r-- | kernel/sched/wait.c | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index f66920173370..17a954c9e153 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
@@ -3416,7 +3416,7 @@ static void __sched notrace __schedule(bool preempt) | |||
3416 | 3416 | ||
3417 | switch_count = &prev->nivcsw; | 3417 | switch_count = &prev->nivcsw; |
3418 | if (!preempt && prev->state) { | 3418 | if (!preempt && prev->state) { |
3419 | if (unlikely(signal_pending_state(prev->state, prev))) { | 3419 | if (signal_pending_state(prev->state, prev)) { |
3420 | prev->state = TASK_RUNNING; | 3420 | prev->state = TASK_RUNNING; |
3421 | } else { | 3421 | } else { |
3422 | deactivate_task(rq, prev, DEQUEUE_SLEEP | DEQUEUE_NOCLOCK); | 3422 | deactivate_task(rq, prev, DEQUEUE_SLEEP | DEQUEUE_NOCLOCK); |
diff --git a/kernel/sched/swait.c b/kernel/sched/swait.c index 66b59ac77c22..e83a3f8449f6 100644 --- a/kernel/sched/swait.c +++ b/kernel/sched/swait.c | |||
@@ -93,7 +93,7 @@ long prepare_to_swait_event(struct swait_queue_head *q, struct swait_queue *wait | |||
93 | long ret = 0; | 93 | long ret = 0; |
94 | 94 | ||
95 | raw_spin_lock_irqsave(&q->lock, flags); | 95 | raw_spin_lock_irqsave(&q->lock, flags); |
96 | if (unlikely(signal_pending_state(state, current))) { | 96 | if (signal_pending_state(state, current)) { |
97 | /* | 97 | /* |
98 | * See prepare_to_wait_event(). TL;DR, subsequent swake_up_one() | 98 | * See prepare_to_wait_event(). TL;DR, subsequent swake_up_one() |
99 | * must not see us. | 99 | * must not see us. |
diff --git a/kernel/sched/wait.c b/kernel/sched/wait.c index 5dd47f1103d1..6eb1f8efd221 100644 --- a/kernel/sched/wait.c +++ b/kernel/sched/wait.c | |||
@@ -264,7 +264,7 @@ long prepare_to_wait_event(struct wait_queue_head *wq_head, struct wait_queue_en | |||
264 | long ret = 0; | 264 | long ret = 0; |
265 | 265 | ||
266 | spin_lock_irqsave(&wq_head->lock, flags); | 266 | spin_lock_irqsave(&wq_head->lock, flags); |
267 | if (unlikely(signal_pending_state(state, current))) { | 267 | if (signal_pending_state(state, current)) { |
268 | /* | 268 | /* |
269 | * Exclusive waiter must not fail if it was selected by wakeup, | 269 | * Exclusive waiter must not fail if it was selected by wakeup, |
270 | * it should "consume" the condition we were waiting for. | 270 | * it should "consume" the condition we were waiting for. |