]> git.baikalelectronics.ru Git - kernel.git/commit
sched/fair: Fix find_idlest_group() to handle CPU affinity
authorVincent Guittot <vincent.guittot@linaro.org>
Wed, 4 Dec 2019 18:21:40 +0000 (19:21 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Tue, 17 Dec 2019 12:32:48 +0000 (13:32 +0100)
commitc169435d922dbe72d6a399fafd41f59c98eec91a
tree9bcff437b239abfb2cbe682f2fccf57a4719ec4d
parent1bb2dd987556ccd2480de5a5878a8a826c45db7c
sched/fair: Fix find_idlest_group() to handle CPU affinity

Because of CPU affinity, the local group can be skipped which breaks the
assumption that statistics are always collected for local group. With
uninitialized local_sgs, the comparison is meaningless and the behavior
unpredictable. This can even end up to use local pointer which is to
NULL in this case.

If the local group has been skipped because of CPU affinity, we return
the idlest group.

Fixes: cf60856dc38a ("sched/fair: Rework find_idlest_group()")
Reported-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Valentin Schneider <valentin.schneider@arm.com>
Tested-by: John Stultz <john.stultz@linaro.org>
Cc: rostedt@goodmis.org
Cc: valentin.schneider@arm.com
Cc: mingo@redhat.com
Cc: mgorman@suse.de
Cc: juri.lelli@redhat.com
Cc: dietmar.eggemann@arm.com
Cc: bsegall@google.com
Cc: qais.yousef@arm.com
Link: https://lkml.kernel.org/r/1575483700-22153-1-git-send-email-vincent.guittot@linaro.org
kernel/sched/fair.c