aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorBjoern Brandenburg <bbb@mpi-sws.org>2017-03-13 11:26:50 -0400
committerBjoern Brandenburg <bbb@mpi-sws.org>2017-05-26 17:12:29 -0400
commita286e5f00ef48ab8d9b189370441ce90d855b306 (patch)
tree4bdad9403dd355c60ce7659e539ede7fa7e59e6b /kernel
parentbaac487bf96b27e70c0b76ab2456bf1d981f6edd (diff)
Hook into __schedule() to set litmus_preemption_in_progress
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched/core.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index f2f3a3000a1c..435d755cf9bf 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -3378,6 +3378,8 @@ static void __sched notrace __schedule(bool preempt)
3378 3378
3379 rq->clock_skip_update <<= 1; /* promote REQ to ACT */ 3379 rq->clock_skip_update <<= 1; /* promote REQ to ACT */
3380 3380
3381 this_cpu_write(litmus_preemption_in_progress, preempt);
3382
3381 switch_count = &prev->nivcsw; 3383 switch_count = &prev->nivcsw;
3382 if (!preempt && prev->state) { 3384 if (!preempt && prev->state) {
3383 if (unlikely(signal_pending_state(prev->state, prev))) { 3385 if (unlikely(signal_pending_state(prev->state, prev))) {
@@ -3410,6 +3412,8 @@ static void __sched notrace __schedule(bool preempt)
3410 clear_preempt_need_resched(); 3412 clear_preempt_need_resched();
3411 rq->clock_skip_update = 0; 3413 rq->clock_skip_update = 0;
3412 3414
3415 this_cpu_write(litmus_preemption_in_progress, false);
3416
3413 if (likely(prev != next)) { 3417 if (likely(prev != next)) {
3414 rq->nr_switches++; 3418 rq->nr_switches++;
3415 rq->curr = next; 3419 rq->curr = next;