sched/fair: Sanitize vruntime of entity being migrated
authorVincent Guittot <vincent.guittot@linaro.org>
Fri, 17 Mar 2023 16:08:10 +0000 (17:08 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Tue, 21 Mar 2023 13:43:04 +0000 (14:43 +0100)
commita53ce18cacb477dd0513c607f187d16f0fa96f71
treecbd0e5bf188e6a8f8a78d8159926149874b80b33
parente8d018dd0257f744ca50a729e3d042cf2ec9da65
sched/fair: Sanitize vruntime of entity being migrated

Commit 829c1651e9c4 ("sched/fair: sanitize vruntime of entity being placed")
fixes an overflowing bug, but ignore a case that se->exec_start is reset
after a migration.

For fixing this case, we delay the reset of se->exec_start after
placing the entity which se->exec_start to detect long sleeping task.

In order to take into account a possible divergence between the clock_task
of 2 rqs, we increase the threshold to around 104 days.

Fixes: 829c1651e9c4 ("sched/fair: sanitize vruntime of entity being placed")
Originally-by: Zhang Qiao <zhangqiao22@huawei.com>
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Zhang Qiao <zhangqiao22@huawei.com>
Link: https://lore.kernel.org/r/20230317160810.107988-1-vincent.guittot@linaro.org
kernel/sched/core.c
kernel/sched/fair.c