]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 12 Jan 2012 06:52:48 +0000 (22:52 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 12 Jan 2012 06:52:48 +0000 (22:52 -0800)
* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  sched: Fix lockup by limiting load-balance retries on lock-break
  sched: Fix CONFIG_CGROUP_SCHED dependency
  sched: Remove empty #ifdefs

init/Kconfig
kernel/sched/core.c
kernel/sched/fair.c

index a075765d5fbe4b85ca033708f454de38c3ea3798..018d206c21f74a8af5c9af7388c28b33c39d143c 100644 (file)
@@ -713,7 +713,6 @@ config CGROUP_PERF
 
 menuconfig CGROUP_SCHED
        bool "Group CPU scheduler"
-       depends on EXPERIMENTAL
        default n
        help
          This feature lets CPU scheduler recognize task groups and control CPU
index cecbb64be05fe166c60014af84de74056ed53fc8..fd7b25e9007933b29d02a71fae7e528deb0248f9 100644 (file)
@@ -7134,10 +7134,6 @@ void set_curr_task(int cpu, struct task_struct *p)
 
 #endif
 
-#ifdef CONFIG_RT_GROUP_SCHED
-#else /* !CONFIG_RT_GROUP_SCHED */
-#endif /* CONFIG_RT_GROUP_SCHED */
-
 #ifdef CONFIG_CGROUP_SCHED
 /* task_group_lock serializes the addition/removal of task groups */
 static DEFINE_SPINLOCK(task_group_lock);
@@ -7246,9 +7242,6 @@ void sched_move_task(struct task_struct *tsk)
 }
 #endif /* CONFIG_CGROUP_SCHED */
 
-#ifdef CONFIG_FAIR_GROUP_SCHED
-#endif
-
 #if defined(CONFIG_RT_GROUP_SCHED) || defined(CONFIG_CFS_BANDWIDTH)
 static unsigned long to_ratio(u64 period, u64 runtime)
 {
index 8e42de9105f800d1a7ca7231626b6d683b1cce4a..84adb2d66cbd3dc15e653532462203f8c73bba18 100644 (file)
@@ -3130,8 +3130,10 @@ task_hot(struct task_struct *p, u64 now, struct sched_domain *sd)
 }
 
 #define LBF_ALL_PINNED 0x01
-#define LBF_NEED_BREAK 0x02
-#define LBF_ABORT      0x04
+#define LBF_NEED_BREAK 0x02    /* clears into HAD_BREAK */
+#define LBF_HAD_BREAK  0x04
+#define LBF_HAD_BREAKS 0x0C    /* count HAD_BREAKs overflows into ABORT */
+#define LBF_ABORT      0x10
 
 /*
  * can_migrate_task - may task p from runqueue rq be migrated to this_cpu?
@@ -4508,7 +4510,9 @@ redo:
                        goto out_balanced;
 
                if (lb_flags & LBF_NEED_BREAK) {
-                       lb_flags &= ~LBF_NEED_BREAK;
+                       lb_flags += LBF_HAD_BREAK - LBF_NEED_BREAK;
+                       if (lb_flags & LBF_ABORT)
+                               goto out_balanced;
                        goto redo;
                }