diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2008-04-19 13:45:00 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-04-19 13:45:00 -0400 |
commit | 4a55bd5e97b1775913f88f11108a4f144f590e89 (patch) | |
tree | 4514f2370d898b93086779c821023319fe4c8b9d /kernel/sched.c | |
parent | ac884dec6d4a7df252150af875cffddf8f1d9c15 (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.c | 10 |
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) | |||
7898 | static void init_cfs_rq(struct cfs_rq *cfs_rq, struct rq *rq) | 7903 | static 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 |