On 05/12/2017 at 11:32 AM, Xunlei Pang wrote:
> When a contrained task is throttled by dl_check_constrained_dl(),
> it may carry the remaining positive runtime, as a result when
> dl_task_timer() fires and calls replenish_dl_entity(), it will
> not be replenished correctly due to the positive dl_se->runtime.
>
> This patch assigns its runtime to 0 if positive after throttling.
>
> Fixes: df8eac8cafce ("sched/deadline: Throttle a constrained deadline task
> activated after the deadline)
> Acked-by: Daniel Bristot de Oliveira
> Signed-off-by: Xunlei Pang
Hi Peter,
According to the previous discussion with Luca, please ignore the last two
patches of this series.
Could you please only help review or pick up this one?
Regards,
Xunlei
> ---
> kernel/sched/deadline.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
> index a2ce590..d3d291e 100644
> --- a/kernel/sched/deadline.c
> +++ b/kernel/sched/deadline.c
> @@ -723,6 +723,8 @@ static inline void dl_check_constrained_dl(struct
> sched_dl_entity *dl_se)
> if (unlikely(dl_se->dl_boosted || !start_dl_timer(p)))
> return;
> dl_se->dl_throttled = 1;
> + if (dl_se->runtime > 0)
> + dl_se->runtime = 0;
> }
> }
>