Re: [PATCH 2/9] sched/fair: Add new cfs_rq.h_nr_enqueued

From: Vincent Guittot
Date: Thu Nov 28 2024 - 05:25:04 EST


On Thu, 28 Nov 2024 at 10:56, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> On Thu, Nov 28, 2024 at 10:27:43AM +0100, Vincent Guittot wrote:
> > With delayed dequeued feature, a sleeping sched_entity remains enqueued
> > in the rq until its lag has elapsed. As a result, it stays also visible
> > in the statistics that are used to balance the system and in particular
> > the field h_nr_running when the sched_entity is associated to a task.
> >
> > Create a new h_nr_enqueued that tracks all enqueued tasks and restore the
> > behavior of h_nr_running i.e. tracking the number of fair tasks that want
> > to run.
>
> Isn't h_nr_enqueued := h_nr_running - h_nr_delayed ? Does it really make
> sense to have another variable that is so trivially computable?

I changed h_nr_running to track only running tasks and not delayed dequeue

With this patch we have:
h_nr_enqueued := h_nr_running + h_nr_delayed

And I remove h_nr_delayed in a later patch to keep only h_nr_enqueued
and h_nr_running

>
> Also naming; h_nr_enqueued isn't really adequate I feel, because the
> whole problem is that the delayed tasks are still very much enqueued.