diff options
author | Bjoern Brandenburg <bbb@mpi-sws.org> | 2017-03-13 11:26:50 -0400 |
---|---|---|
committer | Bjoern Brandenburg <bbb@mpi-sws.org> | 2017-05-26 17:12:29 -0400 |
commit | a286e5f00ef48ab8d9b189370441ce90d855b306 (patch) | |
tree | 4bdad9403dd355c60ce7659e539ede7fa7e59e6b /kernel | |
parent | baac487bf96b27e70c0b76ab2456bf1d981f6edd (diff) |
Hook into __schedule() to set litmus_preemption_in_progress
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/sched/core.c | 4 |
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; |