diff options
| -rw-r--r-- | kernel/sched/core.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index f5605b6deea4..da302ca98f60 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
| @@ -5089,10 +5089,20 @@ static struct notifier_block migration_notifier = { | |||
| 5089 | .priority = CPU_PRI_MIGRATION, | 5089 | .priority = CPU_PRI_MIGRATION, |
| 5090 | }; | 5090 | }; |
| 5091 | 5091 | ||
| 5092 | static void __cpuinit set_cpu_rq_start_time(void) | ||
| 5093 | { | ||
| 5094 | int cpu = smp_processor_id(); | ||
| 5095 | struct rq *rq = cpu_rq(cpu); | ||
| 5096 | rq->age_stamp = sched_clock_cpu(cpu); | ||
| 5097 | } | ||
| 5098 | |||
| 5092 | static int sched_cpu_active(struct notifier_block *nfb, | 5099 | static int sched_cpu_active(struct notifier_block *nfb, |
| 5093 | unsigned long action, void *hcpu) | 5100 | unsigned long action, void *hcpu) |
| 5094 | { | 5101 | { |
| 5095 | switch (action & ~CPU_TASKS_FROZEN) { | 5102 | switch (action & ~CPU_TASKS_FROZEN) { |
| 5103 | case CPU_STARTING: | ||
| 5104 | set_cpu_rq_start_time(); | ||
| 5105 | return NOTIFY_OK; | ||
| 5096 | case CPU_DOWN_FAILED: | 5106 | case CPU_DOWN_FAILED: |
| 5097 | set_cpu_active((long)hcpu, true); | 5107 | set_cpu_active((long)hcpu, true); |
| 5098 | return NOTIFY_OK; | 5108 | return NOTIFY_OK; |
| @@ -6970,6 +6980,7 @@ void __init sched_init(void) | |||
| 6970 | if (cpu_isolated_map == NULL) | 6980 | if (cpu_isolated_map == NULL) |
| 6971 | zalloc_cpumask_var(&cpu_isolated_map, GFP_NOWAIT); | 6981 | zalloc_cpumask_var(&cpu_isolated_map, GFP_NOWAIT); |
| 6972 | idle_thread_set_boot_cpu(); | 6982 | idle_thread_set_boot_cpu(); |
| 6983 | set_cpu_rq_start_time(); | ||
| 6973 | #endif | 6984 | #endif |
| 6974 | init_sched_fair_class(); | 6985 | init_sched_fair_class(); |
| 6975 | 6986 | ||
