diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2009-12-16 12:04:40 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-12-16 13:01:58 -0500 |
commit | efbbd05a595343a413964ad85a2ad359b7b7efbd (patch) | |
tree | c1bf0d86134187e127a00067b50b0684c2988860 /kernel/sched.c | |
parent | 881232b70b195768a71cd74ff4b4e8ab9502997b (diff) |
sched: Add pre and post wakeup hooks
As will be apparent in the next patch, we need a pre wakeup hook
for sched_fair task migration, hence rename the post wakeup hook
and one pre wakeup.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
LKML-Reference: <20091216170518.114746117@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 297dc441ff96..6c571bdd5658 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -2412,6 +2412,10 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state, | |||
2412 | if (task_contributes_to_load(p)) | 2412 | if (task_contributes_to_load(p)) |
2413 | rq->nr_uninterruptible--; | 2413 | rq->nr_uninterruptible--; |
2414 | p->state = TASK_WAKING; | 2414 | p->state = TASK_WAKING; |
2415 | |||
2416 | if (p->sched_class->task_waking) | ||
2417 | p->sched_class->task_waking(rq, p); | ||
2418 | |||
2415 | __task_rq_unlock(rq); | 2419 | __task_rq_unlock(rq); |
2416 | 2420 | ||
2417 | cpu = select_task_rq(p, SD_BALANCE_WAKE, wake_flags); | 2421 | cpu = select_task_rq(p, SD_BALANCE_WAKE, wake_flags); |
@@ -2475,8 +2479,8 @@ out_running: | |||
2475 | 2479 | ||
2476 | p->state = TASK_RUNNING; | 2480 | p->state = TASK_RUNNING; |
2477 | #ifdef CONFIG_SMP | 2481 | #ifdef CONFIG_SMP |
2478 | if (p->sched_class->task_wake_up) | 2482 | if (p->sched_class->task_woken) |
2479 | p->sched_class->task_wake_up(rq, p); | 2483 | p->sched_class->task_woken(rq, p); |
2480 | 2484 | ||
2481 | if (unlikely(rq->idle_stamp)) { | 2485 | if (unlikely(rq->idle_stamp)) { |
2482 | u64 delta = rq->clock - rq->idle_stamp; | 2486 | u64 delta = rq->clock - rq->idle_stamp; |
@@ -2666,8 +2670,8 @@ void wake_up_new_task(struct task_struct *p, unsigned long clone_flags) | |||
2666 | trace_sched_wakeup_new(rq, p, 1); | 2670 | trace_sched_wakeup_new(rq, p, 1); |
2667 | check_preempt_curr(rq, p, WF_FORK); | 2671 | check_preempt_curr(rq, p, WF_FORK); |
2668 | #ifdef CONFIG_SMP | 2672 | #ifdef CONFIG_SMP |
2669 | if (p->sched_class->task_wake_up) | 2673 | if (p->sched_class->task_woken) |
2670 | p->sched_class->task_wake_up(rq, p); | 2674 | p->sched_class->task_woken(rq, p); |
2671 | #endif | 2675 | #endif |
2672 | task_rq_unlock(rq, &flags); | 2676 | task_rq_unlock(rq, &flags); |
2673 | } | 2677 | } |