On Tue, 6 Oct 2020 11:35:23 +0200
Juri Lelli <juri.le...@redhat.com> wrote:
[...]
> > > +                 if (dl_se->server_has_tasks(dl_se)) {
> > > +                         enqueue_dl_entity(dl_se, dl_se, 
> > > ENQUEUE_REPLENISH);
> > > +                         resched_curr(rq);
> > > +                         __push_dl_task(rq, &rf);
> > > +                 } else {
> > > +                         replenish_dl_entity(dl_se, dl_se);  
> > 
> > I am wondering if here we need a "task_non_contending(dl_se)" after
> > "replenish_dl_entity(dl_se, dl_se);"...
> > 
> > Basically, what happened is that all the served tasks blocked while the
> > server was throttled... So, now the server should be disabled (so, we
> > replenish the dl entity but we do not insert it in runqueue).
> > But when the server finished its budget and has been throttled, it has
> > not been disabled (so, its utilization is still in running_bw).  
> 
> Hummm. For CFS, we call dl_server_stop() after the last CFS task blocks
> and that calls dequeue_dl(SLEEP), which should be calling
> task_non_contending(). That should be happening also while the server is
> throttled and CFS tasks are running outside of it, no?

You are right... I somehow lost this detail.


> Guess I'm missing something.

No, I was the one missing something :)
Sorry about the noise.



                        Thanks,
                                Luca

Reply via email to