aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched.c
diff options
context:
space:
mode:
authorPeter Zijlstra <a.p.zijlstra@chello.nl>2008-04-19 13:45:00 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-19 13:45:00 -0400
commit4a55bd5e97b1775913f88f11108a4f144f590e89 (patch)
tree4514f2370d898b93086779c821023319fe4c8b9d /kernel/sched.c
parentac884dec6d4a7df252150af875cffddf8f1d9c15 (diff)
sched: fair-group: de-couple load-balancing from the rb-trees
De-couple load-balancing from the rb-trees, so that I can change their organization. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched.c')
-rw-r--r--kernel/sched.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index ae1a3e936d28..3202462109f5 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -384,8 +384,12 @@ struct cfs_rq {
384 384
385 struct rb_root tasks_timeline; 385 struct rb_root tasks_timeline;
386 struct rb_node *rb_leftmost; 386 struct rb_node *rb_leftmost;
387 struct rb_node *rb_load_balance_curr; 387
388 /* 'curr' points to currently running entity on this cfs_rq. 388 struct list_head tasks;
389 struct list_head *balance_iterator;
390
391 /*
392 * 'curr' points to currently running entity on this cfs_rq.
389 * It is set to NULL otherwise (i.e when none are currently running). 393 * It is set to NULL otherwise (i.e when none are currently running).
390 */ 394 */
391 struct sched_entity *curr, *next; 395 struct sched_entity *curr, *next;
@@ -2525,6 +2529,7 @@ static void __sched_fork(struct task_struct *p)
2525 2529
2526 INIT_LIST_HEAD(&p->rt.run_list); 2530 INIT_LIST_HEAD(&p->rt.run_list);
2527 p->se.on_rq = 0; 2531 p->se.on_rq = 0;
2532 INIT_LIST_HEAD(&p->se.group_node);
2528 2533
2529#ifdef CONFIG_PREEMPT_NOTIFIERS 2534#ifdef CONFIG_PREEMPT_NOTIFIERS
2530 INIT_HLIST_HEAD(&p->preempt_notifiers); 2535 INIT_HLIST_HEAD(&p->preempt_notifiers);
@@ -7898,6 +7903,7 @@ int in_sched_functions(unsigned long addr)
7898static void init_cfs_rq(struct cfs_rq *cfs_rq, struct rq *rq) 7903static void init_cfs_rq(struct cfs_rq *cfs_rq, struct rq *rq)
7899{ 7904{
7900 cfs_rq->tasks_timeline = RB_ROOT; 7905 cfs_rq->tasks_timeline = RB_ROOT;
7906 INIT_LIST_HEAD(&cfs_rq->tasks);
7901#ifdef CONFIG_FAIR_GROUP_SCHED 7907#ifdef CONFIG_FAIR_GROUP_SCHED
7902 cfs_rq->rq = rq; 7908 cfs_rq->rq = rq;
7903#endif 7909#endif