sched/core: Fix reset-on-fork from RT with uclamp
authorQuentin Perret <qperret@google.com>
Thu, 16 Apr 2020 08:59:56 +0000 (09:59 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 22 Apr 2020 21:10:13 +0000 (23:10 +0200)
commiteaf5a92ebde5bca3bb2565616115bd6d579486cd
tree2aeb36e9b491ab5f5ad9049c5abf2b7d123dab1e
parentdb441bd9f630329c402d5cdd319f11bfcf509fb6
sched/core: Fix reset-on-fork from RT with uclamp

uclamp_fork() resets the uclamp values to their default when the
reset-on-fork flag is set. It also checks whether the task has a RT
policy, and sets its uclamp.min to 1024 accordingly. However, during
reset-on-fork, the task's policy is lowered to SCHED_NORMAL right after,
hence leading to an erroneous uclamp.min setting for the new task if it
was forked from RT.

Fix this by removing the unnecessary check on rt_task() in
uclamp_fork() as this doesn't make sense if the reset-on-fork flag is
set.

Fixes: 1a00d999971c ("sched/uclamp: Set default clamps for RT tasks")
Reported-by: Chitti Babu Theegala <ctheegal@codeaurora.org>
Signed-off-by: Quentin Perret <qperret@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Patrick Bellasi <patrick.bellasi@matbug.net>
Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Link: https://lkml.kernel.org/r/20200416085956.217587-1-qperret@google.com
kernel/sched/core.c