diff options
| author | Bjoern Brandenburg <bbb@mpi-sws.org> | 2015-08-09 07:18:49 -0400 |
|---|---|---|
| committer | Bjoern Brandenburg <bbb@mpi-sws.org> | 2017-05-26 17:12:28 -0400 |
| commit | f77cd98179f8758cb9b3bbb0bccbf576a6a79cb9 (patch) | |
| tree | a312ce3b9e311e02ae8efe09e58548b9d0124c4e /kernel/sched | |
| parent | 3baa55c19ffb567aa48568fa69dd17ad6f70d31d (diff) | |
Integrate preemption state machine with Linux scheduler
Track when a processor is going to schedule "soon".
Diffstat (limited to 'kernel/sched')
| -rw-r--r-- | kernel/sched/core.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 32bffe174d75..f2f3a3000a1c 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
| @@ -2857,6 +2857,10 @@ asmlinkage __visible void schedule_tail(struct task_struct *prev) | |||
| 2857 | */ | 2857 | */ |
| 2858 | 2858 | ||
| 2859 | rq = finish_task_switch(prev); | 2859 | rq = finish_task_switch(prev); |
| 2860 | |||
| 2861 | if (unlikely(sched_state_validate_switch())) | ||
| 2862 | litmus_reschedule_local(); | ||
| 2863 | |||
| 2860 | balance_callback(rq); | 2864 | balance_callback(rq); |
| 2861 | preempt_enable(); | 2865 | preempt_enable(); |
| 2862 | 2866 | ||
| @@ -3349,6 +3353,8 @@ static void __sched notrace __schedule(bool preempt) | |||
| 3349 | 3353 | ||
| 3350 | TS_SCHED_START; | 3354 | TS_SCHED_START; |
| 3351 | 3355 | ||
| 3356 | sched_state_entered_schedule(); | ||
| 3357 | |||
| 3352 | cpu = smp_processor_id(); | 3358 | cpu = smp_processor_id(); |
| 3353 | rq = cpu_rq(cpu); | 3359 | rq = cpu_rq(cpu); |
| 3354 | prev = rq->curr; | 3360 | prev = rq->curr; |
| @@ -3421,6 +3427,10 @@ static void __sched notrace __schedule(bool preempt) | |||
| 3421 | } | 3427 | } |
| 3422 | 3428 | ||
| 3423 | TS_SCHED2_START(prev); | 3429 | TS_SCHED2_START(prev); |
| 3430 | |||
| 3431 | if (unlikely(sched_state_validate_switch())) | ||
| 3432 | litmus_reschedule_local(); | ||
| 3433 | |||
| 3424 | balance_callback(rq); | 3434 | balance_callback(rq); |
| 3425 | TS_SCHED2_END(prev); | 3435 | TS_SCHED2_END(prev); |
| 3426 | } | 3436 | } |
