From: Nick Piggin Make sched-remove-degenerate-domains.patch actually work. Signed-off-by: Suresh Siddha Catch more (hopefully all) cases. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton --- kernel/sched.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletion(-) diff -puN kernel/sched.c~sched-remove-degenerate-domains-fix kernel/sched.c --- 25/kernel/sched.c~sched-remove-degenerate-domains-fix 2005-05-03 16:14:38.000000000 -0700 +++ 25-akpm/kernel/sched.c 2005-05-03 16:14:38.000000000 -0700 @@ -4873,7 +4873,14 @@ static int __devinit sd_parent_degenerat /* WAKE_BALANCE is a subset of WAKE_AFFINE */ if (cflags & SD_WAKE_AFFINE) pflags &= ~SD_WAKE_BALANCE; - if ((~sd->flags) & parent->flags) + /* Flags needing groups don't count if only 1 group in parent */ + if (parent->groups == parent->groups->next) { + pflags &= ~(SD_LOAD_BALANCE | + SD_BALANCE_NEWIDLE | + SD_BALANCE_FORK | + SD_BALANCE_EXEC); + } + if (~cflags & pflags) return 0; return 1; _