sched: Clean up domain traversal in select_idle_sibling()
authorSuresh Siddha <suresh.b.siddha@intel.com>
Thu, 17 Nov 2011 19:08:23 +0000 (11:08 -0800)
committerIngo Molnar <mingo@elte.hu>
Tue, 6 Dec 2011 07:51:25 +0000 (08:51 +0100)
commit77e81365e0b7d7479fc444a21cea0cd4def70b45
treeedb0aa41e7ca436f3e1097ea5ea9da6ebee4ec81
parentb781a602ac745ee3d5d745276f1e1905a2c101f9
sched: Clean up domain traversal in select_idle_sibling()

Instead of going through the scheduler domain hierarchy multiple times
(for giving priority to an idle core over an idle SMT sibling in a busy
core), start with the highest scheduler domain with the SD_SHARE_PKG_RESOURCES
flag and traverse the domain hierarchy down till we find an idle group.

This cleanup also addresses an issue reported by Mike where the recent
changes returned the busy thread even in the presence of an idle SMT
sibling in single socket platforms.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Tested-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1321556904.15339.25.camel@sbsiddha-desk.sc.intel.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched/fair.c
kernel/sched/sched.h