Messages in this thread Patch in this message | | | From | Zhihui Zhang <> | Subject | [PATCH] [sched] Don't account time after deadline twice | Date | Sun, 29 Jun 2014 21:26:10 -0400 |
| |
Unless we want to double-penalize an overrun task, the time after the deadline and before the current time is already accounted in the negative dl_se->runtime value. So we can leave it as is in the case of dmiss && rorun.
Signed-off-by: Zhihui Zhang <zzhsuny@gmail.com> --- kernel/sched/deadline.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index fc4f98b1..67df0d6 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -579,10 +579,8 @@ int dl_runtime_exceeded(struct rq *rq, struct sched_dl_entity *dl_se) * the next instance. Thus, if we do not account that, we are * stealing bandwidth from the system at each deadline miss! */ - if (dmiss) { - dl_se->runtime = rorun ? dl_se->runtime : 0; - dl_se->runtime -= rq_clock(rq) - dl_se->deadline; - } + if (dmiss && !rorun) + dl_se->runtime = dl_se->deadline - rq_clock(rq); return 1; } -- 1.8.1.2
| |