Re: [PATCH v2] sched/fair: Fix enqueue_task_fair warning some more

From: Dietmar Eggemann
Date: Mon May 11 2020 - 13:03:35 EST


Hi Tao,

On 11/05/2020 17:44, Tao Zhou wrote:
> Hi Dietmar,

[...]

> On Mon, May 11, 2020 at 12:39:52PM +0200, Dietmar Eggemann wrote:
>> On 11/05/2020 11:36, Vincent Guittot wrote:
>>> On Mon, 11 May 2020 at 10:40, Dietmar Eggemann <dietmar.eggemann@xxxxxxx> wrote:
>>>>
>>>> On 08/05/2020 19:02, Tao Zhou wrote:
>>>>> On Fri, May 08, 2020 at 05:27:44PM +0200, Vincent Guittot wrote:
>>>>>> On Fri, 8 May 2020 at 17:12, Tao Zhou <zohooouoto@xxxxxxxxxxx> wrote:
>>>>>>>
>>>>>>> Hi Phil,
>>>>>>>
>>>>>>> On Thu, May 07, 2020 at 04:36:12PM -0400, Phil Auld wrote:
>>>>>>>> sched/fair: Fix enqueue_task_fair warning some more

[...]

>> I don't grasp how can cfs_a->on_list=1, when cfs_a is throttled and
>> cfs_b, cfs_c are in a throttled hierarchy?
>
> I remember that Vincent explained that in this thread:
>
> https://lore.kernel.org/lkml/CAKfTPtDxE32RrTusYTBUcwYoJFvadLLaMUp7gOsXdj_zQcaWdA@xxxxxxxxxxxxxx/
>
> This was what I confused also. When enqueue one task, the throttled
> cfs_rq may be added back to the leaf_cfs_rq list.

As long as we only consider one hierarchy than I can't see how we can
enqueue a task and hit cfs_a->on_list=1 on a throttled cfs_a.

But there might be a cfs_b' (another child of cfs_a) sub hierarchy which
had a task enqueue just before and this set cfs_a->on_list=1.

Tried to read the email you pointed at carefully but can't see it there
... pretty tired right now, maybe tomorrow?