Re: [PATCH v2] sched/fair: sanitize vruntime of entity being migrated

From: Dietmar Eggemann
Date: Mon Mar 13 2023 - 05:08:59 EST


On 10/03/2023 15:29, Vincent Guittot wrote:
> Le jeudi 09 mars 2023 � 16:14:38 (+0100), Vincent Guittot a �crit :
>> On Thu, 9 Mar 2023 at 15:37, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>>>
>>> On Thu, Mar 09, 2023 at 03:28:25PM +0100, Peter Zijlstra wrote:
>>>> On Thu, Mar 09, 2023 at 02:34:05PM +0100, Vincent Guittot wrote:

[...]

>> you mean taking the patch 1/2 that you mentioned here to add a
>> migrated field:
>> https://lore.kernel.org/all/68832dfbb60fda030540b5f4e39c5801942689b1.1648228023.git.tim.c.chen@xxxxxxxxxxxxxxx/T/#ma5637eb8010f3f4a4abff778af8db705429d003b
>>
>> And assume that the divergence between the rq_clock_task() can be ignored ?
>>
>> That could probably work but we need to replace the (60LL *
>> NSEC_PER_SEC) by ((1ULL << 63) / NICE_0_LOAD) because 60sec divergence
>> would not be unrealistic.
>> and a comment to explain why it's acceptable
>
> Zhang,
>
> Could you try the patch below ?
> This is a rebase/merge/update of:
> -patch 1/2 above and
> -https://lore.kernel.org/lkml/20230209193107.1432770-1-rkagan@xxxxxxxxx/
>
> The proposal accepts a divergence of up to 52 days between the 2 rqs.
>
> If this work, we will prepare a proper patch

Looks to me that this patch brings back the old numbers:

model name : Intel(R) Xeon(R) Silver 4314 CPU @ 2.40GHz

perf stat --null --repeat 10 -- perf bench sched messaging -g 50 -l 5000

tip sched/core

a2e90611b9f4 - sched/fair: Remove capacity inversion detection
(2023-02-11 Vincent Guittot)

5.7295 +- 0.0219 seconds time elapsed ( +- 0.38% )

829c1651e9c4 - sched/fair: sanitize vruntime of entity being placed
(2023-02-11 Zhang Qiao)

6.0961 +- 0.0297 seconds time elapsed ( +- 0.49% )

this patch on top 829c1651e9c4

5.7165 +- 0.0231 seconds time elapsed ( +- 0.40% )

[...]