diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-03-02 12:04:55 -0500 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-04-12 14:58:40 -0400 |
commit | 5cdc24ae24b6517d594072b27873b1d46416eae3 (patch) | |
tree | bab9fcb6fde1bae2b5857cd4838fe5847f927de5 /kernel/sched.c | |
parent | ad92e346f66397c431b8856fb1eb15be29415b04 (diff) |
Add preemption-and-migration overhead tracing supportwip-pm-ovd
Add per-task accounting (based on shared control page) of information
needed to trace preemption and migration overheads from userspace
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 1701eaebb79c..69fb86c87915 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -489,6 +489,9 @@ struct rt_rq { | |||
489 | struct litmus_rq { | 489 | struct litmus_rq { |
490 | unsigned long nr_running; | 490 | unsigned long nr_running; |
491 | struct task_struct *prev; | 491 | struct task_struct *prev; |
492 | #ifdef CONFIG_PREEMPT_MIGRAT_OVD | ||
493 | unsigned int last_rt_task; | ||
494 | #endif | ||
492 | }; | 495 | }; |
493 | 496 | ||
494 | #ifdef CONFIG_SMP | 497 | #ifdef CONFIG_SMP |
@@ -2766,8 +2769,11 @@ static void finish_task_switch(struct rq *rq, struct task_struct *prev) | |||
2766 | */ | 2769 | */ |
2767 | prev_state = prev->state; | 2770 | prev_state = prev->state; |
2768 | finish_arch_switch(prev); | 2771 | finish_arch_switch(prev); |
2772 | |||
2769 | litmus->finish_switch(prev); | 2773 | litmus->finish_switch(prev); |
2770 | prev->rt_param.stack_in_use = NO_CPU; | 2774 | prev->rt_param.stack_in_use = NO_CPU; |
2775 | trace_preempt_migrat_ovd(prev, current, rq); | ||
2776 | |||
2771 | perf_event_task_sched_in(current, cpu_of(rq)); | 2777 | perf_event_task_sched_in(current, cpu_of(rq)); |
2772 | finish_lock_switch(rq, prev); | 2778 | finish_lock_switch(rq, prev); |
2773 | 2779 | ||