On Wed, Jul 05, 2017 at 09:59:05AM +0100, Juri Lelli wrote:
> @@ -1156,9 +1157,26 @@ static void update_curr_dl(struct rq *rq)
>       if (unlikely(dl_entity_is_special(dl_se)))
>               return;
>  
> -     if (unlikely(dl_se->flags & SCHED_FLAG_RECLAIM))
> -             delta_exec = grub_reclaim(delta_exec, rq, &curr->dl);
> -     dl_se->runtime -= delta_exec;
> +     /*
> +      * For tasks that participate in GRUB, we implement GRUB-PA: the
> +      * spare reclaimed bandwidth is used to clock down frequency.
> +      *
> +      * For the others, we still need to scale reservation parameters
> +      * according to current frequency and CPU maximum capacity.
> +      */
> +     if (unlikely(dl_se->flags & SCHED_FLAG_RECLAIM)) {
> +             scaled_delta_exec = grub_reclaim(delta_exec,
> +                                              rq,
> +                                              &curr->dl);
> +     } else {
> +             unsigned long scale_freq = arch_scale_freq_capacity(cpu);
> +             unsigned long scale_cpu = arch_scale_cpu_capacity(NULL, cpu);
> +
> +             scaled_delta_exec = cap_scale(delta_exec, scale_freq);
> +             scaled_delta_exec = cap_scale(scaled_delta_exec, scale_cpu);
> +     }
> +
> +     dl_se->runtime -= scaled_delta_exec;
>  

This I don't get... 

Reply via email to