On Fri, Nov 07, 2025 at 07:51:49AM +0100, Juri Lelli wrote:
> On 06/11/25 17:39, Andrea Righi wrote:
> > On Thu, Nov 06, 2025 at 08:13:39AM +0100, Juri Lelli wrote:
> 
> ...
> 
> > > > @@ -376,8 +378,11 @@ static ssize_t sched_fair_server_write(struct file 
> > > > *filp, const char __user *ubu
> > > >                         return  -EINVAL;
> > > >                 }
> > > >  
> > > > -               update_rq_clock(rq);
> > > > -               dl_server_stop(&rq->fair_server);
> > > > +               is_active = dl_server_active(&rq->fair_server);
> > > > +               if (is_active) {
> > > > +                       update_rq_clock(rq);
> > > > +                       dl_server_stop(&rq->fair_server);
> > > > +               }
> > > >  
> > > >                 retval = dl_server_apply_params(&rq->fair_server, 
> > > > runtime, period, 0);
> > > >  
> > > > @@ -385,7 +390,7 @@ static ssize_t sched_fair_server_write(struct file 
> > > > *filp, const char __user *ubu
> > > >                         printk_deferred("Fair server disabled in CPU 
> > > > %d, system may crash due to starvation.\n",
> > > >                                         cpu_of(rq));
> > > >  
> > > > -               if (rq->cfs.h_nr_queued)
> > > > +               if (is_active)
> > > >                         dl_server_start(&rq->fair_server);
> > > 
> > > Something that I noticed while reviewing this series is that we still
> > > start back a server even if the user put its runtime to zero (disabling
> > > it) and I don't think we want to do that. It's not of course related to
> > > this change or this series per-se, but something we probably want to fix
> > > independently.
> > 
> > Should we just call dl_server_remove_params() when runtime is zero?
> 
> Looking again at it I actually wonder if wouldn't it be better to use
> dl_server_apply_params(dl_se, 0, dl_se->dl_period, false) in both cases.
> dl_rq_change_utilization() deals with dl_non_contending (inactive_timer
> armed) case already (even though sub-optimally, but we can fix/change it
> later), so we can probably remove the special handling you do in
> dl_server_remove_params(). The WARN_ON_ONCE(on_dl_rq()) could be moved
> to dl_server_apply_params() as well.
> 
> What do you think?

As you said, it's probably sub-optimal, but I think it's still better than
missing scx dl_server entirely. :)

I'll give this approach a try and check if everything works as expected.

Thanks (and sorry for the late response)!

-Andrea

Reply via email to