Re: [v6.12] WARNING: at kernel/sched/deadline.c:1995 enqueue_dl_entity (task blocked for more than 28262 seconds)

From: Ilya Maximets
Date: Wed Dec 11 2024 - 04:48:53 EST


On 12/11/24 03:30, Vineeth Remanan Pillai wrote:
>>> /*
>>> - * Any fair task that runs outside of fair_server should
>>> - * account against fair_server such that it can account for
>>> - * this time and possibly avoid running this period.
>>> + * If the fair_server is active, we need to account for the
>>> + * fair_server time whether or not the task is running on
>>> + * behalf of fair_server or not:
>>> + * - If the task is running on behalf of fair_server, we need
>>> + * to limit its time based on the assigned runtime.
>>> + * - Fair task that runs outside of fair_server should account
>>> + * against fair_server such that it can account for this time
>>> + * and possibly avoid running this period.
>>> */
>>> - if (p->dl_server != &rq->fair_server)
>>> + if (dl_server_active(&rq->fair_server))
>>> dl_server_update(&rq->fair_server, delta_exec);
>>> }
>>
>> That indeed also fixes it for me.
>>
> Thanks for the confirmation Marcel
>
>>>>
>>>> "static inline bool dl_server_active(struct sched_dl_entity *dl_se)"
>>>
>>> Sure. I can try that.
>>
>> Running with this for about 8 hours and so far so good.
>> Will leave the test running for the night, just in case.
>>
> Thanks for the update Ilya
>
> I also have been running the test for more than 24 hours now and did
> not encounter warnings or crashes.

Nice! On my side, another 11 hours and no issues observed.

>
> Juri, Peter, Shall I go ahead and send out a single patch folding the
> 2 fixes in this thread(dl_server_active and fix for the
> dl_server_update call)?
>
> Thanks,
> Vineeth