On Mon, 24 Oct 2016 16:06:34 +0200
Luca Abeni <luca.ab...@unitn.it> wrote:
[...]
> @@ -514,7 +556,20 @@ static void update_dl_entity(struct sched_dl_entity 
> *dl_se,
>       struct dl_rq *dl_rq = dl_rq_of_se(dl_se);
>       struct rq *rq = rq_of_dl_rq(dl_rq);
>  
> -     add_running_bw(dl_se, dl_rq);
> +     if (hrtimer_is_queued(&dl_se->inactive_timer)) {
> +             hrtimer_try_to_cancel(&dl_se->inactive_timer);
Replying to myself here: after re-readling this code again, I now think that
if hrtimer_try_to_cancel() does not fail I need a put_task_struct() to
compensate for the one that should happen in the inactive timer handler
and I just cancelled...
I do not know how I previously missed this (or maybe I just managed to
confuse myself now :)

I will check this in next week.



                                Luca

Reply via email to