diff options
-rw-r--r-- | kernel/sched/deadline.c | 19 |
1 files changed, 1 insertions, 18 deletions
diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index 55af498d3c8c..b52092f2636d 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c | |||
@@ -570,24 +570,7 @@ void init_dl_task_timer(struct sched_dl_entity *dl_se) | |||
570 | static | 570 | static |
571 | int dl_runtime_exceeded(struct rq *rq, struct sched_dl_entity *dl_se) | 571 | int dl_runtime_exceeded(struct rq *rq, struct sched_dl_entity *dl_se) |
572 | { | 572 | { |
573 | int dmiss = dl_time_before(dl_se->deadline, rq_clock(rq)); | 573 | return (dl_se->runtime <= 0); |
574 | int rorun = dl_se->runtime <= 0; | ||
575 | |||
576 | if (!rorun && !dmiss) | ||
577 | return 0; | ||
578 | |||
579 | /* | ||
580 | * If we are beyond our current deadline and we are still | ||
581 | * executing, then we have already used some of the runtime of | ||
582 | * the next instance. Thus, if we do not account that, we are | ||
583 | * stealing bandwidth from the system at each deadline miss! | ||
584 | */ | ||
585 | if (dmiss) { | ||
586 | dl_se->runtime = rorun ? dl_se->runtime : 0; | ||
587 | dl_se->runtime -= rq_clock(rq) - dl_se->deadline; | ||
588 | } | ||
589 | |||
590 | return 1; | ||
591 | } | 574 | } |
592 | 575 | ||
593 | extern bool sched_rt_bandwidth_account(struct rt_rq *rt_rq); | 576 | extern bool sched_rt_bandwidth_account(struct rt_rq *rt_rq); |