aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/time
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-05-16 17:47:16 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-05-16 17:47:16 -0400
commit825a3b2605c3aa193e0075d0f9c72e33c17ab16a (patch)
treee8665c4cc20076ae53165475839d36b4bc641cd3 /kernel/time
parentcf6ed9a6682d3f171cf9550d4bbe0ef31b768a7e (diff)
parentef0491ea17f8019821c7e9c8e801184ecf17f85a (diff)
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler updates from Ingo Molnar: - massive CPU hotplug rework (Thomas Gleixner) - improve migration fairness (Peter Zijlstra) - CPU load calculation updates/cleanups (Yuyang Du) - cpufreq updates (Steve Muckle) - nohz optimizations (Frederic Weisbecker) - switch_mm() micro-optimization on x86 (Andy Lutomirski) - ... lots of other enhancements, fixes and cleanups. * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (66 commits) ARM: Hide finish_arch_post_lock_switch() from modules sched/core: Provide a tsk_nr_cpus_allowed() helper sched/core: Use tsk_cpus_allowed() instead of accessing ->cpus_allowed sched/loadavg: Fix loadavg artifacts on fully idle and on fully loaded systems sched/fair: Correct unit of load_above_capacity sched/fair: Clean up scale confusion sched/nohz: Fix affine unpinned timers mess sched/fair: Fix fairness issue on migration sched/core: Kill sched_class::task_waking to clean up the migration logic sched/fair: Prepare to fix fairness problems on migration sched/fair: Move record_wakee() sched/core: Fix comment typo in wake_q_add() sched/core: Remove unused variable sched: Make hrtick_notifier an explicit call sched/fair: Make ilb_notifier an explicit call sched/hotplug: Make activate() the last hotplug step sched/hotplug: Move migration CPU_DYING to sched_cpu_dying() sched/migration: Move CPU_ONLINE into scheduler state sched/migration: Move calc_load_migrate() into CPU_DYING sched/migration: Move prepare transition to SCHED_STARTING state ...
Diffstat (limited to 'kernel/time')
-rw-r--r--kernel/time/tick-sched.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index 3daa49ff0719..536ada80f6dd 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -776,6 +776,7 @@ static ktime_t tick_nohz_stop_sched_tick(struct tick_sched *ts,
776 if (!ts->tick_stopped) { 776 if (!ts->tick_stopped) {
777 nohz_balance_enter_idle(cpu); 777 nohz_balance_enter_idle(cpu);
778 calc_load_enter_idle(); 778 calc_load_enter_idle();
779 cpu_load_update_nohz_start();
779 780
780 ts->last_tick = hrtimer_get_expires(&ts->sched_timer); 781 ts->last_tick = hrtimer_get_expires(&ts->sched_timer);
781 ts->tick_stopped = 1; 782 ts->tick_stopped = 1;
@@ -802,11 +803,11 @@ out:
802 return tick; 803 return tick;
803} 804}
804 805
805static void tick_nohz_restart_sched_tick(struct tick_sched *ts, ktime_t now, int active) 806static void tick_nohz_restart_sched_tick(struct tick_sched *ts, ktime_t now)
806{ 807{
807 /* Update jiffies first */ 808 /* Update jiffies first */
808 tick_do_update_jiffies64(now); 809 tick_do_update_jiffies64(now);
809 update_cpu_load_nohz(active); 810 cpu_load_update_nohz_stop();
810 811
811 calc_load_exit_idle(); 812 calc_load_exit_idle();
812 touch_softlockup_watchdog_sched(); 813 touch_softlockup_watchdog_sched();
@@ -833,7 +834,7 @@ static void tick_nohz_full_update_tick(struct tick_sched *ts)
833 if (can_stop_full_tick(ts)) 834 if (can_stop_full_tick(ts))
834 tick_nohz_stop_sched_tick(ts, ktime_get(), cpu); 835 tick_nohz_stop_sched_tick(ts, ktime_get(), cpu);
835 else if (ts->tick_stopped) 836 else if (ts->tick_stopped)
836 tick_nohz_restart_sched_tick(ts, ktime_get(), 1); 837 tick_nohz_restart_sched_tick(ts, ktime_get());
837#endif 838#endif
838} 839}
839 840
@@ -1024,7 +1025,7 @@ void tick_nohz_idle_exit(void)
1024 tick_nohz_stop_idle(ts, now); 1025 tick_nohz_stop_idle(ts, now);
1025 1026
1026 if (ts->tick_stopped) { 1027 if (ts->tick_stopped) {
1027 tick_nohz_restart_sched_tick(ts, now, 0); 1028 tick_nohz_restart_sched_tick(ts, now);
1028 tick_nohz_account_idle_ticks(ts); 1029 tick_nohz_account_idle_ticks(ts);
1029 } 1030 }
1030 1031