ANDROID: sched: Prevent unnecessary active balance of single task in sched group
authorMorten Rasmussen <morten.rasmussen@arm.com>
Thu, 2 Jul 2015 16:16:34 +0000 (17:16 +0100)
committerChris Redpath <chris.redpath@arm.com>
Thu, 14 Dec 2017 21:41:02 +0000 (21:41 +0000)
commitac3ecee61d299c280c4143f72dfd816c304e70e0
tree142672ff3cf1b20329c4498875c461253fb166b3
parentbebc6082da0a9f5d47a1ea2edc099bf671058bd4
ANDROID: sched: Prevent unnecessary active balance of single task in sched group

Scenarios with the busiest group having just one task and the local
being idle on topologies with sched groups with different numbers of
cpus manage to dodge all load-balance bailout conditions resulting the
nr_balance_failed counter to be incremented. This eventually causes a
pointless active migration of the task. This patch prevents this by not
incrementing the counter when the busiest group only has one task.
ASYM_PACKING migrations and migrations due to reduced capacity should
still take place as these are explicitly captured by
need_active_balance().

A better solution would be to not attempt the load-balance in the first
place, but that requires significant changes to the order of bailout
conditions and statistics gathering.

cc: Ingo Molnar <mingo@redhat.com>
cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Morten Rasmussen <morten.rasmussen@arm.com>
Change-Id: I6a2f51017c49614d5e4224f0e16f240ad8af6d0f
Signed-off-by: Chris Redpath <chris.redpath@arm.com>
kernel/sched/fair.c