forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/l…
…inux/kernel/git/tip/tip Pull scheduler updates from Ingo Molnar: "The main scheduler changes in this cycle were: - NUMA balancing improvements (Mel Gorman) - Further load tracking improvements (Patrick Bellasi) - Various NOHZ balancing cleanups and optimizations (Peter Zijlstra) - Improve blocked load handling, in particular we can now reduce and eventually stop periodic load updates on 'very idle' CPUs. (Vincent Guittot) - On isolated CPUs offload the final 1Hz scheduler tick as well, plus related cleanups and reorganization. (Frederic Weisbecker) - Core scheduler code cleanups (Ingo Molnar)" * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (45 commits) sched/core: Update preempt_notifier_key to modern API sched/cpufreq: Rate limits for SCHED_DEADLINE sched/fair: Update util_est only on util_avg updates sched/cpufreq/schedutil: Use util_est for OPP selection sched/fair: Use util_est in LB and WU paths sched/fair: Add util_est on top of PELT sched/core: Remove TASK_ALL sched/completions: Use bool in try_wait_for_completion() sched/fair: Update blocked load when newly idle sched/fair: Move idle_balance() sched/nohz: Merge CONFIG_NO_HZ_COMMON blocks sched/fair: Move rebalance_domains() sched/nohz: Optimize nohz_idle_balance() sched/fair: Reduce the periodic update duration sched/nohz: Stop NOHZ stats when decayed sched/cpufreq: Provide migration hint sched/nohz: Clean up nohz enter/exit sched/fair: Update blocked load from NEWIDLE sched/fair: Add NOHZ stats balancing sched/fair: Restructure nohz_balance_kick() ...
- Loading branch information
Showing
41 changed files
with
2,114 additions
and
1,561 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
/* | ||
* sched_clock for unstable cpu clocks | ||
* sched_clock() for unstable CPU clocks | ||
* | ||
* Copyright (C) 2008 Red Hat, Inc., Peter Zijlstra | ||
* | ||
|
@@ -11,7 +11,7 @@ | |
* Guillaume Chazarain <[email protected]> | ||
* | ||
* | ||
* What: | ||
* What this file implements: | ||
* | ||
* cpu_clock(i) provides a fast (execution time) high resolution | ||
* clock with bounded drift between CPUs. The value of cpu_clock(i) | ||
|
@@ -26,11 +26,11 @@ | |
* at 0 on boot (but people really shouldn't rely on that). | ||
* | ||
* cpu_clock(i) -- can be used from any context, including NMI. | ||
* local_clock() -- is cpu_clock() on the current cpu. | ||
* local_clock() -- is cpu_clock() on the current CPU. | ||
* | ||
* sched_clock_cpu(i) | ||
* | ||
* How: | ||
* How it is implemented: | ||
* | ||
* The implementation either uses sched_clock() when | ||
* !CONFIG_HAVE_UNSTABLE_SCHED_CLOCK, which means in that case the | ||
|
@@ -52,19 +52,7 @@ | |
* that is otherwise invisible (TSC gets stopped). | ||
* | ||
*/ | ||
#include <linux/spinlock.h> | ||
#include <linux/hardirq.h> | ||
#include <linux/export.h> | ||
#include <linux/percpu.h> | ||
#include <linux/ktime.h> | ||
#include <linux/sched.h> | ||
#include <linux/nmi.h> | ||
#include <linux/sched/clock.h> | ||
#include <linux/static_key.h> | ||
#include <linux/workqueue.h> | ||
#include <linux/compiler.h> | ||
#include <linux/tick.h> | ||
#include <linux/init.h> | ||
#include "sched.h" | ||
|
||
/* | ||
* Scheduler clock - returns current time in nanosec units. | ||
|
@@ -302,21 +290,21 @@ static u64 sched_clock_remote(struct sched_clock_data *scd) | |
* cmpxchg64 below only protects one readout. | ||
* | ||
* We must reread via sched_clock_local() in the retry case on | ||
* 32bit as an NMI could use sched_clock_local() via the | ||
* 32-bit kernels as an NMI could use sched_clock_local() via the | ||
* tracer and hit between the readout of | ||
* the low32bit and the high 32bit portion. | ||
* the low 32-bit and the high 32-bit portion. | ||
*/ | ||
this_clock = sched_clock_local(my_scd); | ||
/* | ||
* We must enforce atomic readout on 32bit, otherwise the | ||
* update on the remote cpu can hit inbetween the readout of | ||
* the low32bit and the high 32bit portion. | ||
* We must enforce atomic readout on 32-bit, otherwise the | ||
* update on the remote CPU can hit inbetween the readout of | ||
* the low 32-bit and the high 32-bit portion. | ||
*/ | ||
remote_clock = cmpxchg64(&scd->clock, 0, 0); | ||
#else | ||
/* | ||
* On 64bit the read of [my]scd->clock is atomic versus the | ||
* update, so we can avoid the above 32bit dance. | ||
* On 64-bit kernels the read of [my]scd->clock is atomic versus the | ||
* update, so we can avoid the above 32-bit dance. | ||
*/ | ||
sched_clock_local(my_scd); | ||
again: | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.