sched: fix a bug in sched domain degenerate
authorLi Zefan <lizf@cn.fujitsu.com>
Thu, 6 Nov 2008 01:45:16 +0000 (09:45 +0800)
committerIngo Molnar <mingo@elte.hu>
Fri, 7 Nov 2008 07:29:57 +0000 (08:29 +0100)
commitf29c9b1ccb52904ee442a933cf3dee628f9f4e62
tree836b4383a89a5aac64e50afd752a48b4bb0c167a
parent4bab0ea1d42dd1927af9df6fbf0003fc00617c50
sched: fix a bug in sched domain degenerate

Impact: re-add incorrectly eliminated sched domain layers

(1) on i386 with SCHED_SMT and SCHED_MC enabled
# mount -t cgroup -o cpuset xxx /mnt
# echo 0 > /mnt/cpuset.sched_load_balance
# mkdir /mnt/0
# echo 0 > /mnt/0/cpuset.cpus
# dmesg
CPU0 attaching sched-domain:
 domain 0: span 0 level CPU
  groups: 0

(2) on i386 with SCHED_MC enabled but SCHED_SMT disabled
# same with (1)
# dmesg
CPU0 attaching NULL sched-domain.

The bug is that some sched domains may be skipped unintentionally when
degenerating (optimizing) sched domains.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched.c