Re: [PATCH 10/18 v2] sched/fair: Add force push task mechanism for fair
From: Kayra Cizmeci
Date: Fri Oct 09 2026 - 01:53:34 EST
> 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.
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