Re: [PATCH v4 2/2] sched: Skip priority checks with SCHED_FLAG_KEEP_PARAMS

From: Dietmar Eggemann
Date: Thu Jul 29 2021 - 13:34:22 EST


On 27/07/2021 12:16, Quentin Perret wrote:
> On Monday 26 Jul 2021 at 14:56:10 (+0100), Quentin Perret wrote:
>> On Thursday 22 Jul 2021 at 10:47:33 (+0200), Dietmar Eggemann wrote:
>>> (*) This changes the behaviour when setting uclamp values on a DL task.
>>>
>>> Before uclamp values could be set but now, because of
>>>
>>> void __getparam_dl(struct task_struct *p, struct sched_attr *attr)
>>> ..
>>> attr->sched_flags = dl_se->flags
>>>
>>> SCHED_FLAG_UTIL_CLAMP gets overwritten and __sched_setscheduler() bails in:
>>>
>>> if (unlikely(policy == p->policy)) {
>>> ...
>>> retval = 0;
>>> goto unlock;
>>> }
>>> change:
>>>
>>> I.e. the:
>>>
>>> if (attr->sched_flags & SCHED_FLAG_UTIL_CLAMP)
>>> goto change;
>>>
>>> can't trigger anymore.
>>
>> Bah, as you said it doesn't seem to be a big deal, but clearly that was
>> unintentional. Let me try and fix this.
>
> While looking at this I found existing bugs in the area. Fixes are here:
>
> https://lore.kernel.org/lkml/20210727101103.2729607-1-qperret@xxxxxxxxxx/
>
> And with the above series applied this patch should behave correctly
> now.

It does. Like depicted in

https://lkml.kernel.org/r/e6d103f1-f8ee-cad9-c7c0-c9ea5d0f099a@xxxxxxx

Reviewed-by: Dietmar Eggemann <dietmar.eggemann@xxxxxxx>