Re: [PATCH 10/18 v2] sched/fair: Add force push task mechanism for fair

From: Vincent Guittot

Date: Fri Oct 09 2026 - 10:09:15 EST


On Fri, 9 Oct 2026 at 07:53, Kayra Cizmeci <kayracizmeci@xxxxxxxxx> wrote:
>
> > task_tick_cache(rq, curr);
> >
> > - update_misfit_status(curr, rq);
> > - check_update_overutilized_status(task_rq(curr));
> > + if (!tick_pushable_task(curr, rq, rf)) {
> > + update_misfit_status(curr, rq);
> > + check_update_overutilized_status(task_rq(curr));
> > + }
> >
> > task_tick_core(rq, curr);
> > }
>
> Hm.
>
> I think this mechanism added on here does not works.

Ah yes, while factorizing the code, I removed this main diff between
tick and put events

>
> Before fair_check_pushable_task() is called, we check
> if nr_running is bigger than 1. If it is we return false.
> So when we enter fair_check_pushable_task(), nr_running is
> equal or smaller than 1. We first run __check_pushable_fair_task()
> but it doesn't really matters, since it's output
> can only return false. Next block is skipped to since
> next == NULL. When we're at the check_pushable_short_task(),
> the h_nr_runnable check is always true on this path,
> so we return false.
>
> It this intentional? Or am I missing something?
>
> Thanks,
> Kayra
>