diff options
Diffstat (limited to 'kernel/sched.c')
-rw-r--r-- | kernel/sched.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 8db1a4cf2082..173768f142ad 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -558,6 +558,7 @@ struct rq { | |||
558 | struct load_weight load; | 558 | struct load_weight load; |
559 | unsigned long nr_load_updates; | 559 | unsigned long nr_load_updates; |
560 | u64 nr_switches; | 560 | u64 nr_switches; |
561 | u64 nr_migrations_in; | ||
561 | 562 | ||
562 | struct cfs_rq cfs; | 563 | struct cfs_rq cfs; |
563 | struct rt_rq rt; | 564 | struct rt_rq rt; |
@@ -1908,6 +1909,7 @@ void set_task_cpu(struct task_struct *p, unsigned int new_cpu) | |||
1908 | #endif | 1909 | #endif |
1909 | if (old_cpu != new_cpu) { | 1910 | if (old_cpu != new_cpu) { |
1910 | p->se.nr_migrations++; | 1911 | p->se.nr_migrations++; |
1912 | new_rq->nr_migrations_in++; | ||
1911 | #ifdef CONFIG_SCHEDSTATS | 1913 | #ifdef CONFIG_SCHEDSTATS |
1912 | if (task_hot(p, old_rq->clock, NULL)) | 1914 | if (task_hot(p, old_rq->clock, NULL)) |
1913 | schedstat_inc(p, se.nr_forced2_migrations); | 1915 | schedstat_inc(p, se.nr_forced2_migrations); |
@@ -2811,6 +2813,21 @@ unsigned long nr_active(void) | |||
2811 | } | 2813 | } |
2812 | 2814 | ||
2813 | /* | 2815 | /* |
2816 | * Externally visible per-cpu scheduler statistics: | ||
2817 | * cpu_nr_switches(cpu) - number of context switches on that cpu | ||
2818 | * cpu_nr_migrations(cpu) - number of migrations into that cpu | ||
2819 | */ | ||
2820 | u64 cpu_nr_switches(int cpu) | ||
2821 | { | ||
2822 | return cpu_rq(cpu)->nr_switches; | ||
2823 | } | ||
2824 | |||
2825 | u64 cpu_nr_migrations(int cpu) | ||
2826 | { | ||
2827 | return cpu_rq(cpu)->nr_migrations_in; | ||
2828 | } | ||
2829 | |||
2830 | /* | ||
2814 | * Update rq->cpu_load[] statistics. This function is usually called every | 2831 | * Update rq->cpu_load[] statistics. This function is usually called every |
2815 | * scheduler tick (TICK_NSEC). | 2832 | * scheduler tick (TICK_NSEC). |
2816 | */ | 2833 | */ |